基于web开发的大数据多高发癌症临床数据可视化分析系统
- JavaScript 54.4%
- Java 24.9%
- Vue 18%
- HTML 1.4%
- Python 0.6%
- Other 0.6%
| cancer-backend | ||
| cancer-dashboard | ||
| data | ||
| model | ||
| script | ||
| sql | ||
| .gitignore | ||
| echarts.min.js | ||
| inline_echarts.py | ||
| model_comparison_chart.html | ||
| README.md | ||
| 多高发癌症临床数据可视化分析系统-任务书.docx | ||
基于Web的多种高发癌症临床数据可视化分析系统
一、项目简介
本项目是一个基于 Web 的大数据分析系统,聚焦多种高发癌症临床数据,集成了数据可视化大屏、多维分析、智能预测和数据管理等功能。系统基于 10,194 条真实癌症临床数据,运用随机森林等 6 种机器学习模型对肿瘤分期进行预测分析,通过 ECharts 实现多维度数据可视化展示。
二、技术栈
后端
- Java 8 + Spring Boot 2.x
- RuoYi-Vue 框架(权限管理、代码生成)
- MyBatis(数据持久层)
- MySQL 8.0(数据存储)
- Redis(缓存)
前端
- Vue.js 2.x + Element UI
- ECharts(数据可视化:柱状图、折线图、散点图、雷达图、热力图)
- Axios(HTTP 请求)
- Vue Router(路由管理)
数据分析与机器学习
- Python 3.x
- scikit-learn(6 种分类模型:随机森林、逻辑回归、SVM、KNN、决策树、GBDT)
- pandas(数据处理)
- Flask(预测服务 API)
数据可视化
- ECharts 5.x(大屏可视化、模型对比图表、混淆矩阵、ROC 曲线)
三、功能模块
| 模块 | 功能说明 |
|---|---|
| 数据概览大屏 | 癌症类型分布、分期分布、性别比例、年龄分布等多维可视化展示,支持筛选交互 |
| 数据管理 | 临床数据的增删改查、CSV 导出、统计卡片展示 |
| 多维分析 | 交叉分析(癌症类型 × 分期 × 性别)、相关性分析 |
| 智能预测 | 肿瘤分期预测(早/晚期)、6 种模型对比、混淆矩阵、ROC 曲线 |
| 系统管理 | 用户管理、角色管理、菜单管理、日志管理(RuoYi 内置) |
四、项目结构
cancer-project/
├── cancer-backend/ # 后端项目
│ ├── ruoyi-admin/ # 主启动模块
│ │ └── src/main/java/com/ruoyi/web/controller/
│ │ └── cancer/ # 癌症相关接口
│ ├── ruoyi-system/ # 业务模块
│ │ └── src/main/java/com/ruoyi/system/
│ │ ├── domain/ # 实体类
│ │ ├── mapper/ # 数据访问层
│ │ └── service/ # 业务逻辑层
│ ├── ruoyi-framework/ # 框架核心(安全、拦截器等)
│ ├── ruoyi-ui/ # 前端 Vue 项目
│ │ └── src/views/
│ │ ├── cancer/sample/ # 数据管理页面
│ │ ├── overview/ # 数据概览大屏
│ │ ├── analysis/ # 多维分析页面
│ │ └── prediction/ # 智能预测页面
│ └── sql/ # 数据库脚本
├── script/ # Python 脚本
│ ├── data_clean.py # 数据清洗
│ ├── train_model.py # 模型训练
│ ├── model_compare.py # 多模型对比
│ └── predict_server.py # Flask 预测服务
├── data/ # 数据文件
│ └── cleaned_cancer_data.csv
├── model/ # 训练好的模型
│ └── rf_cancer_stage.pkl
└── sql/ # 建表与菜单 SQL
五、快速开始
1. 环境要求
- JDK 1.8+
- MySQL 8.0+
- Redis 5.0+
- Node.js 14+
- Python 3.8+
- Maven 3.6+
2. 数据库初始化
# 创建数据库
mysql -u root -p
> CREATE DATABASE ry_cancer DEFAULT CHARACTER SET utf8mb4;
# 导入 RuoYi 基础表
> source cancer-backend/sql/ry_20260417.sql;
# 导入癌症数据表
> source sql/cancer_schema.sql;
# 导入菜单配置
> source sql/menu_sample.sql;
> source sql/menu_analysis.sql;
> source sql/menu_prediction.sql;
3. 后端启动
# 修改数据库连接配置
# cancer-backend/ruoyi-admin/src/main/resources/application-druid.yml
# 编译启动
cd cancer-backend
mvn clean package -DskipTests
java -jar ruoyi-admin/target/ruoyi-admin.jar
4. 前端启动
cd cancer-backend/ruoyi-ui
npm install
npm run dev
前端地址:http://localhost:80
5. Python 预测服务
pip install flask flask-cors pandas scikit-learn
cd cancer-project
python script/predict_server.py
预测服务地址:http://localhost:5000
6. 默认管理员账号
- 用户名:
admin - 密码:
admin123
六、模型评估结果
| 模型 | 准确率 | 精确率 | 召回率 | F1值 | AUC |
|---|---|---|---|---|---|
| 随机森林 | 0.852 | 0.846 | 0.873 | 0.859 | 0.912 |
| 梯度提升(GBDT) | 0.841 | 0.835 | 0.860 | 0.847 | 0.898 |
| 逻辑回归 | 0.798 | 0.791 | 0.815 | 0.803 | 0.856 |
| SVM支持向量机 | 0.812 | 0.806 | 0.830 | 0.818 | 0.871 |
| K近邻(KNN) | 0.775 | 0.768 | 0.795 | 0.781 | 0.821 |
| 决策树 | 0.803 | 0.797 | 0.822 | 0.809 | 0.843 |
最优模型:随机森林(AUC = 0.912)
七、数据说明
- 数据来源:TCGA(The Cancer Genome Atlas)公开癌症基因组数据
- 数据量:10,194 条真实临床记录
- 数据字段:癌症类型、性别、诊断年龄、突变次数、TMB(肿瘤突变负荷)、肿瘤纯度、吸烟状态、肿瘤分期等
- 数据清洗:去重、缺失值处理、异常值过滤
八、系统截图
- 数据概览大屏:ECharts 多维可视化 + 筛选交互
- 数据管理:统计卡片 + 颜色标签 + CSV 导出
- 智能预测:6 模型对比柱状图 + 混淆矩阵热力图 + ROC 曲线
- 多维分析:交叉分析表格 + 相关性分析
九、作者
- 姓名:李思蕊
- 邮箱:1345678@qq.com