基于机器学习的心脏病发病风险预测系统

Flask 心脏病风险预测平台:UCI Cleveland 13 项临床特征,Bootstrap 扩充 1025 样本训练 RF/GBDT/LR/SVM,单条与 CSV 批量预测、12 张 ECharts 图表与四级风险分级,适合医疗 ML 毕业设计。

评分:4.8/5.0
销量:35
发布:6/8/2026
难度:L3 高级

获取完整源码

演示视频仅作效果参考。完整源码、项目说明与运行答疑,请私聊沟通(适合毕业设计 / 课程设计 / 课设参考)。

获取完整源码观看演示视频
含项目说明文档,便于对照学习
可本地运行,适合课设演示
沟通获取后可咨询运行问题

项目封面

截图 1

项目概览

用户输入 cp/slope/thal 等 UCI 原始编码特征,ml/predict 输出概率与低/临界/中/高四级风险;dashboard 含患病分布、特征重要性与近 7 日趋势。管理员可单模型或多模型对比重训,REST API 覆盖 /api/predict 与 /api/stats,Flask-Login 双角色,适合 Python 医疗机器学习、分类模型评估与可视化类毕业设计。

项目说明

基于机器学习的心脏病发病风险预测系统

项目简介

本系统是一个基于 Python Flask 框架的心脏病发病风险智能评估平台,以 UCI Cleveland 心脏病数据集为基础,通过 Bootstrap 有放回采样扩充至 1025 条样本训练机器学习模型。用户输入 13 项临床特征指标,系统输出心脏病风险概率与四级风险等级评估,支持单条预测与 CSV 批量预测,并提供 12 张 ECharts 可视化数据分析图表、模型管理、系统管理等功能。所有特征采用 UCI 原始编码方案(如 cp: 1-4, slope: 1-3, thal: 3/6/7),与临床原始数据保持一致。


功能模块

模块功能说明
首页系统介绍、数据集概况、模型精度展示、技术栈展示、风险分级规则说明
用户系统用户注册、登录、登出,基于 Flask-Login 的会话管理,管理员与普通用户两级权限
单条预测输入 13 项临床特征(年龄、性别、胸痛类型、静息血压、血清胆固醇、空腹血糖、静息心电图、最大心率、运动心绞痛、ST段压低、ST段斜率、主要血管数、地中海贫血类型),输出风险概率、预测结果、风险等级,支持填入示例数据快速体验
批量预测上传 CSV 文件批量评估,逐行特征校验,生成结果 CSV 下载,记录批量任务历史
预测历史预测记录分页浏览、管理员可查看全部用户记录、支持 CSV 导出
数据分析12 张 ECharts 可视化图表:患病数量统计、年龄分布、性别比例、概率分布、风险等级占比、胸痛类型分布、近7日预测趋势、模型性能对比、特征重要性、血压趋势、胆固醇/心率趋势、综合雷达图
模型信息模型性能指标(准确率、精确率、召回率、F1、AUC、交叉验证)、混淆矩阵、特征重要性柱状图(ECharts)、数据集概况、训练历史
数据集浏览数据集统计信息、特征统计表(均值、标准差、最小值、最大值、中位数)、前20条样本预览、数据来源说明
模型训练管理员专属,支持单模型训练(随机森林、梯度提升、逻辑回归、SVM)和多模型对比选优,展示训练结果与历史记录
系统管理管理员专属,用户管理(查看、删除)、系统日志(登录、预测、训练等操作记录)
REST API/api/predict 单条预测、/api/stats 统计数据、/api/model/metrics 模型指标、/api/dataset/stats 数据集统计、/api/predictions 预测历史、/api/features 特征说明

数据来源

项目说明
基础数据集UCI Cleveland Heart Disease Dataset
来源UCI Machine Learning Repository
原始文件data/processed.cleveland.data(303 条原始记录)
训练数据data/heart_extended_1025.csv(1025 条,基于 297 条有效样本 Bootstrap 有放回采样扩充)
有效样本297 条(剔除含缺失值的 6 条)
扩充样本1025 条(有放回采样 + 连续变量微高斯噪声)
特征数13 个临床指标
编码方案UCI 原始编码(cp: 1-4, slope: 1-3, thal: 3/6/7)
标签0 = 无心脏病,1 = 有心脏病(训练时二值化)

风险分级规则

概率区间预测结果风险等级
< 0.3无心脏病风险低风险
0.3 ~ 0.5无心脏病风险临界风险(需关注)
0.5 ~ 0.7有心脏病风险中风险
≥ 0.7有心脏病风险高风险

预测阳性阈值为 0.5(概率 ≥ 0.5 判定为有心脏病风险)。


目录结构

python-xingzangbing-fenxi/
├── app.py                       # Flask 应用主入口,页面路由与 API 接口
├── config.py                    # 应用配置(密钥、路径、特征定义、管理员账号)
├── run.py                       # 项目启动脚本(初始化数据库、训练模型、启动服务)
├── requirements.txt             # Python 依赖包清单
├── data/
│   ├── processed.cleveland.data # UCI Cleveland 原始心脏病数据集(303条)
│   └── heart_extended_1025.csv  # 训练用数据集(1025条)
├── database/
│   ├── __init__.py              # 数据库模块包标识
│   └── db.py                    # SQLite 数据库初始化与 CRUD 操作
├── instance/
│   └── heart_disease.db         # SQLite 数据库文件(自动生成)
├── ml/
│   ├── __init__.py              # 机器学习模块包标识
│   ├── train.py                 # 模型训练(4种模型对比、特征重要性、指标保存)
│   └── predict.py               # 模型预测(单条/批量、特征校验、风险分级、概率校准)
├── models/
│   ├── heart_model.pkl          # 训练完成的模型文件(自动生成)
│   ├── scaler.pkl               # StandardScaler 标准化器(自动生成)
│   ├── metrics.json             # 模型评估指标(自动生成)
│   └── feature_importance.json  # 特征重要性(自动生成)
├── static/
│   ├── css/
│   │   └── style.css            # 自定义样式(专业医疗配色)
│   ├── js/
│   │   └── main.js              # 全局脚本(提示自动关闭)
│   └── uploads/
│       ├── sample_batch.csv     # 批量预测示例 CSV 文件
│       ├── test_low_risk.csv    # 批量预测测试数据(低风险)
│       ├── test_high_risk.csv   # 批量预测测试数据(高风险)
│       └── test_boundary.csv    # 批量预测测试数据(临界值)
├── templates/
│   ├── base.html                # 基础模板(导航栏、CDN 引用、页脚)
│   ├── index.html               # 首页
│   ├── login.html               # 登录页
│   ├── register.html            # 注册页
│   ├── dashboard.html           # 数据分析(12张 ECharts 图表)
│   ├── predict.html             # 单条风险预测
│   ├── batch.html               # 批量预测
│   ├── history.html             # 预测历史
│   ├── model_info.html          # 模型信息
│   ├── dataset.html             # 数据集浏览
│   ├── train.html               # 模型训练(管理员)
│   └── admin.html               # 系统管理(管理员)
├── 运行步骤必看/
│   └── window.md                # Windows 运行步骤说明
├── mac_run.sh                   # macOS/Linux 一键启动脚本
├── window_run.bat               # Windows 一键启动脚本
├── 训练手册.md                   # 模型训练手册
├── 项目说明.md                   # 本文件
└── README.md                    # 项目简介

技术栈

类别技术
后端Python 3.12 + Flask 3.0
数据库SQLite 3
前端HTML5 + Bootstrap 5.3 + ECharts 5.5
机器学习scikit-learn 1.5(随机森林、梯度提升、SVM、逻辑回归)
数据处理pandas 2.2 + numpy 2.0
模型持久化joblib 1.4
用户认证Flask-Login 0.6
密码安全Werkzeug pbkdf2:sha256

环境要求

项目要求
Python3.12
操作系统Windows / macOS / Linux
内存建议 2GB 以上(模型训练时使用)
磁盘约 200MB(含依赖和数据库)
浏览器Chrome / Firefox / Safari / Edge 现代版本

账号信息

角色用户名密码
管理员adminadmin123

管理员拥有模型训练和系统管理页面访问权限,可查看模型指标、管理用户、重新训练模型。新注册用户默认为普通用户角色,仅可使用预测、历史、数据分析等功能。

获取完整源码

技术分类

包含内容

完整源码
项目说明文档
演示材料

适合方向

适合生物医学信息、计算机毕业设计中 scikit-learn 分类、UCI 数据集工程化与 Flask 医疗应用方向;Bootstrap 采样扩充可作为方法学说明。

关于 AI源码

AI源码 整理计算机毕业设计、课程设计向的可运行项目参考,含说明文档与演示材料。完整源码请通过联系方式沟通获取。

QQ: 861077046
邮箱: 861077046@qq.com
已帮助 35+ 位同学完成选题参考
问能不能做我的题目

相关推荐

查看全部 →
社区医疗服务可视化系统
高级

社区医疗服务可视化系统

Spring Boot+Vue2 社区医疗服务可视化管理系统,面向社区医疗机构,含患者管理、预约挂号、病历药品管理与 ECharts 数据统计,集成 Shiro 权限与百度 AI 辅助,适合 Java 医疗信息化毕业设计。

SpringBootVue2MySQL
4.876
大学生在线焦虑测试系统
高级

大学生在线焦虑测试系统

专为大学生设计的在线心理健康评估平台,Spring Boot 3+Vue3 实现焦虑测评、在线咨询与个性化建议,支持学生、医生、管理员三角色,含 JWT 认证与 ECharts 结果分析,适合 Java 心理健康类毕业设计。

SpringBootVue2MySQL
4.833
社区医院儿童健康信息管理系统
高级

社区医院儿童健康信息管理系统

Spring Boot 3+Vue 3 社区医院儿童健康信息管理系统,支持儿童档案、健康测评、疫苗预约与在线咨询,JWT 认证含管理员、医生与普通用户三角色,适合 Java 医疗健康类毕业设计。

SpringBootVue2MySQL
4.827
AI在线问诊平台
高级

AI在线问诊平台

基于若依框架的 AI 在线问诊平台,管理端、医生端与患者端三端分离,支持 WebSocket 即时聊天、AI 辅助诊断与 ECharts 数据可视化,Spring Boot+Vue2 技术栈,适合 Java 医疗 AI 毕业设计。

SpringBootVue2MySQL
4.892
社区医院儿童健康信息管理系统(java)
高级

社区医院儿童健康信息管理系统(java)

Spring Boot 3+Vue3 社区医院儿童健康档案管理平台,含儿童档案录入、健康数据统计、就诊记录、疫苗接种与成长曲线追踪,JWT 认证与医生工作台,适合 Java 社区医疗类毕业设计。

SpringBootVue2MySQL
4.836
心理健康教育小程序
进阶

心理健康教育小程序

微信小程序原生开发的心理健康教育与自助服务系统,涵盖情绪管理、压力应对、正念冥想、心理测评与自助工具箱等模块,纯前端 Mock 数据实现,适合心理健康主题毕业设计。

小程序
4.854