基于前后端分离架构的数据挖掘与可视化分析网站:上传 CSV 数据、在线配置算法参数、执行分析任务,并以交互式图表呈现结果。系统集成关联规则、聚类、分类、回归四类经典数据挖掘算法,Java 后端通过 ProcessBuilder 调用 Python 脚本完成算法计算,实现异构技术栈的松耦合集成。
| 模块 | 算法 | 可配置参数 | 可视化呈现 |
|---|---|---|---|
| 关联规则分析 | Apriori | 最小支持度、最小置信度 | 二阶频繁项集支持度热力图 |
| 聚类分析 | K-Means | 聚类数 K | PCA 降维散点图(按簇着色) |
| 分类分析 | 决策树 | 最大深度、叶节点最少样本数 | 决策树结构图(含基尼系数) |
| 回归分析 | 多项式回归 | 多项式阶数 | 拟合曲线叠加原始散点 |
其他能力:JWT 登录鉴权、CSV 上传与数据预览、请求参数校验、统一异常处理(含 Python 进程退出码校验)。
flowchart LR
A[浏览器<br/>Vue 3 + Ant Design Vue + ECharts] -->|Axios / REST API| B[Spring Boot 后端]
B -->|CSV 保存 / 预览| C[(uploads)]
B -->|ProcessBuilder 调用| D[Python 算法脚本<br/>pandas / scikit-learn]
D -->|stdout JSON 结果| B
B -->|静态图片 / JSON| A
- 前端(
frontend/):Vue 3 + Ant Design Vue 4 + ECharts 5 + Axios + Vue Router - 后端(
backend/):Spring Boot(Java 21),REST 接口统一挂在/api/analyze/*、/api/auth/* - 算法层(
backend/scripts/):四个独立 Python 脚本,通过命令行参数接收输入、以 JSON 标准输出返回结果,与 Java 后端松耦合
![]() |
![]() |
| 关联规则分析页面 | 支持度热力图 |
![]() |
![]() |
| K-Means 聚类(PCA 降维) | 决策树结构可视化 |
![]() |
![]() |
| 回归分析页面 | 多项式回归拟合 |
- JDK 21、Maven 3.6+
- Node.js 16+
- Python 3.10+,安装依赖:
pip install -r backend/scripts/requirements.txt确保 python 命令可在 PATH 中直接调用。
前端构建产物已随仓库包含在 backend/src/main/resources/static/ 中,因此只需启动后端即可访问完整系统:
cd backend
mvn spring-boot:run浏览器访问 http://localhost:8080 。
注意:必须在
backend/目录下启动。后端按user.dir/scripts/定位 Python 算法脚本,更换启动目录会导致算法调用失败。
如需修改前端代码,重新构建后将其产物复制到 backend/src/main/resources/static/ 并重启后端:
cd frontend
npm install
npm run build前端接口使用相对路径
/api,与后端同源部署;开发模式下如需npm run serve热更新,请在vue.config.js中自行配置 devServer 代理指向 8080 端口。
内置演示账号:admin / 123456(见 AuthController,仅作演示用途)。
登录后进入任一分析页面 → 上传 data/ 目录中的示例数据集 → 设置参数 → 执行分析。
| 文件 | 用途 | 说明 |
|---|---|---|
data/shopping.csv |
关联规则 | 购物篮事务数据(每行一个事务) |
data/iris2.csv |
聚类 / 分类 | 鸢尾花数据集(150 样本、4 特征) |
data/cluster_data.csv |
聚类 | 多簇分布模拟数据 |
data/regression_data.csv |
回归 | 非线性关系模拟数据 |
├── backend/ # Spring Boot 后端
│ ├── src/main/java/ # Controller / Service / Config / JWT 鉴权
│ ├── scripts/ # Python 算法脚本(association / clustering / classification / regression)
│ │ └── static/ # 算法生成的图片输出(决策树等)
│ └── uploads/ # 用户上传的 CSV 数据
├── frontend/ # Vue 3 前端
│ └── src/views/ # 四个分析页面 + 登录页
├── data/ # 示例数据集
└── docs/ # 界面与结果截图
- 跨语言松耦合:Python 脚本独立运行,命令行参数进、stdout JSON 出,Java 侧仅做进程编排(ProcessBuilder),算法层可独立替换与扩展
- 健壮性:进程退出码校验(非 0 即抛出异常)、请求参数校验与数据预处理、后端统一异常处理
- 静态资源映射:算法生成的图片写入
scripts/static/并映射为可访问的静态资源
application.yml中的 JWT 密钥为演示配置,生产环境应替换并外置- 本项目为课程综合实验的工程化实现,仅用于学习交流





