【Python期末/毕业设计】基于机器学习的糖尿病预测分析系统(Flask框架/MySQL数据库/HTML页面/PyCharm项目)
代写C语言、C++、Java、Python、HTML、JavaScript、vue、MySQL相关编程项目,
长期接单,信誉有保证,如有任何问题或需要请加文章末尾推广QQ。
在售模板目录:https://blog.csdn.net/weixin_47040861/article/details/143454337
本文资源:Python 基于机器学习的糖尿病预测分析系统(Flask框架/MySQL数据库/HTML页面/PyCharm项目)
1.题目要求
题目描述
编写一个基于 Flask 框架开发的糖尿病预测分析系统,集成了机器学习模型进行糖尿病患病风险预测。系统提供用户登录注册、个人信息管理、糖尿病患病概率预测、历史预测记录查看、数据对比分析以及管理员端用户、历史记录和模型数据管理等功能。
编程软件
后端
前端
2.视频演示
【Python期末/毕业设计】基于机器学习的糖尿病预测分析系统(Flask框架/MySQL数据库/HTML页面/PyCharm项目)
3.项目介绍
基于机器学习的糖尿病预测分析系统
1. 项目简介
本项目是一个基于 Flask 框架开发的糖尿病预测分析系统,集成了机器学习模型进行糖尿病患病风险预测。系统提供用户登录注册、个人信息管理、糖尿病患病概率预测、历史预测记录查看、数据对比分析以及管理员端用户、历史记录和模型数据管理等功能。
2. 技术栈
- 后端框架: Flask
- 数据库: MySQL
- 机器学习库: Scikit-learn (用于模型训练和预测)
- 数据处理: Pandas, SQLAlchemy
- 前端: HTML, CSS, JavaScript (ECharts 用于数据可视化)
- 数据库连接: mysql.connector
3. 文件结构
.
├── data/
│ └── final_file.csv # 初始糖尿病数据集
├── model/
│ ├── diabetes_model.pkl # 训练好的机器学习模型
│ └── scaler.pkl # 数据标准化器
├── static/
│ ├── css/
│ │ ├── AdminPage.css
│ │ ├── index.css
│ │ └── LoginPage.css
│ └── js/
│ ├── AdminPage.js
│ ├── echarts.min.js
│ ├── index.js
│ └── LoginPage.js
├── templates/
│ ├── AdminPage.html
│ ├── index.html
│ └── LoginPage.html
├── connect_mysql.py # 数据库操作模块
├── create_flask.py # Flask 主应用及路由定义
└── training_model.py # 机器学习模型训练与预测模块
4. 功能模块
4.1 用户端功能
- 登录与注册 (LoginPage.html, LoginPage.js, create_flask.py):
- 用户可以通过注册创建新账号。
- 已注册用户可以使用用户名和密码登录。
- 支持管理员账号(admin/111)直接跳转到管理员页面。
- 患病概率预测 (index.html, index.js, create_flask.py, training_model.py):
- 用户输入妊娠次数、血糖、血压、皮肤厚度、胰岛素含量、BMI、糖尿病谱系功能、年龄等指标。
- 系统调用后端机器学习模型进行预测,并以饼图形式展示患病概率。
- 根据概率显示患病风险等级(低、中、高)。
- 预测结果将自动保存到用户的历史记录中。
- 数据对比 (index.html, index.js, create_flask.py):
- 从数据库中随机抽取一条糖尿病患者和一条非糖尿病患者的数据。
- 通过柱状图对比两组数据在各项指标上的差异,帮助用户直观了解不同指标对糖尿病的影响。
- 个人中心 (index.html, index.js, create_flask.py):
- 用户可以查看和修改自己的用户名、账号和密码。
- 修改后的信息会同步更新到数据库和 sessionStorage。
- 历史预测记录 (index.html, index.js, create_flask.py):
- 用户可以查看自己所有的历史预测记录,包括输入数据和预测结果。
- 退出登录 (index.js, AdminPage.js):
- 清除 sessionStorage 中的用户信息并跳转回登录页面。
4.2 管理员端功能
- 用户管理 (AdminPage.html, AdminPage.js, create_flask.py):
- 管理员可以查看所有注册用户的信息。
- 支持对用户信息的在线编辑(点击单元格即可修改)。
- 支持删除用户。
- 历史记录管理 (AdminPage.html, AdminPage.js, create_flask.py):
- 管理员可以查看所有用户的历史预测记录。
- 支持删除历史记录。
- 模型数据管理 (AdminPage.html, AdminPage.js, create_flask.py):
- 管理员可以查看用于模型训练的原始数据(final_file 表)。
- 支持对模型数据的在线编辑、添加和删除。
- 提供“重新训练模型”功能,管理员在数据更新后可以重新训练机器学习模型以提高预测准确性。
- 数据表格支持分页显示。
5. 核心模块说明
5.1 connect_mysql.py
- setup_database(config): 初始化数据库,创建 user、final_file 和 history 表。如果 final_file 表为空,则从 data/final_file.csv 中读取数据并进行清洗后导入。
- insert_data(config, table, data): 向指定表插入数据。
- delete_data(config, table, conditions): 从指定表删除符合条件的数据。
- update_data(config, table, conditions, new_values): 更新指定表中符合条件的数据。
- query_data(config, table, conditions=None): 查询指定表中的数据,支持按条件查询。
- extract_comparison_data(config, table_name=“final_file”): 从 final_file 表中随机抽取一条 Outcome=0(非糖尿病)和一条 Outcome=1(糖尿病)的数据用于对比分析。
5.2 training_model.py
- train_diabetes_model(config):
- 连接 MySQL 数据库,读取 final_file 表中的数据。
- 对数据进行特征(X)和目标变量(y)分离。
- 使用 StandardScaler 对特征数据进行标准化。
- 将数据分为训练集和测试集。
- 使用 RandomForestClassifier 训练糖尿病预测模型。
- 将训练好的模型 (diabetes_model.pkl) 和标准化器 (scaler.pkl) 保存到 model/ 目录下。
- predict_diabetes(input_data):
- 加载预训练的模型和标准化器。
- 对输入数据进行相同的标准化处理。
- 使用模型预测患病概率。
5.3 create_flask.py
- Flask 应用的主文件,定义了所有的后端路由。
- /: 根路由,初始化数据库并训练模型,然后重定向到登录页面。
- /LoginPage: 登录页面的渲染。
- /LoginPage/login: 处理用户登录请求,验证用户名和密码。
- /LoginPage/register: 处理用户注册请求,将新用户数据插入数据库。
- /index: 用户主页的渲染。
- /index/prediction: 接收用户输入的预测数据,调用机器学习模型进行预测,并将结果保存到历史记录。
- /index/contrast: 提供数据对比所需的随机抽取数据。
- /index/update: 处理用户个人信息更新请求。
- /index/history: 获取指定用户的历史预测记录。
- /AdminPage: 管理员页面的渲染。
- /user_query, /user_delete, /user_update: 管理员端用户管理相关的接口。
- /history_query, /history_delete: 管理员端历史记录管理相关的接口。
- /model_query, /model_delete, /model_update, /model_insert, /model_train: 管理员端模型数据管理和模型重新训练相关的接口。
5.4 前端 JavaScript 文件 (AdminPage.js, index.js, LoginPage.js)
- sendRequest(url, method, data): 封装了通用的异步请求函数,用于与后端 API 交互。
- showModule(moduleId): 控制前端不同功能模块的显示与隐藏。
- 各个页面对应的 JS 文件包含了处理用户交互、数据渲染、表单提交、图表绘制(使用 ECharts)以及与后端接口通信的逻辑。例如,index.js 负责患病概率预测、数据对比和个人中心等功能,AdminPage.js 负责用户、历史记录和模型数据的管理操作。
6. 环境搭建与运行
-
安装依赖:
pip install Flask pandas scikit-learn mysql-connector-python sqlalchemy -
MySQL 数据库配置:
- 确保 MySQL 服务器正在运行。
- 在 create_flask.py 中修改 config 字典,配置你的 MySQL 用户名、密码和主机。
config = {
‘user’: ‘root’,
‘password’: ‘your_mysql_password’, # 修改为你的MySQL密码
‘host’: ‘localhost’,
“database”: ‘medicine’ # 数据库名,如果不存在会自动创建
}
-
数据文件:
- 确保 data 文件夹下有 final_file.csv 数据集。
-
运行 Flask 应用:
python create_flask.py -
访问系统:
- 在浏览器中访问 http://127.0.0.1:5000/。
- 首次运行会自动初始化数据库并训练模型。
- 管理员账号:username: admin, password: 111
7. 项目亮点
- 前后端分离: 采用 Flask 作为后端 API,前端使用纯 HTML、CSS 和 JavaScript,结构清晰。
- 机器学习集成: 实现了基于随机森林的糖尿病预测模型,并支持模型的训练和重新训练。
- 数据可视化: 利用 ECharts 库直观展示预测结果(饼图)和数据对比(柱状图)。
- 用户管理: 完善的用户登录、注册、个人信息修改功能。
- 管理员功能: 提供全面的数据管理界面,方便管理员对用户、历史记录和模型数据进行维护。
- 数据持久化: 所有用户数据、历史记录和模型训练数据都存储在 MySQL 数据库中。
- 数据清洗与导入: 首次运行时自动检测并导入 CSV 数据到数据库,并进行基本的数据清洗。
↓如有任何问题请加下方推广QQ↓
更多推荐
所有评论(0)