Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data Mining Platform

基于前后端分离架构的数据挖掘与可视化分析网站:上传 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
Loading
  • 前端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 聚类散点图 决策树结构图
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 密钥为演示配置,生产环境应替换并外置
  • 本项目为课程综合实验的工程化实现,仅用于学习交流

About

基于前后端分离架构的数据挖掘网站(Vue3 + Spring Boot + ProcessBuilder + Scikit-learn),集成关联规则/聚类/分类/回归四种算法

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages