代写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. 环境搭建与运行

  1. 安装依赖:
    pip install Flask pandas scikit-learn mysql-connector-python sqlalchemy

  2. MySQL 数据库配置:

    • 确保 MySQL 服务器正在运行。
    • 在 create_flask.py 中修改 config 字典,配置你的 MySQL 用户名、密码和主机。

config = {
‘user’: ‘root’,
‘password’: ‘your_mysql_password’, # 修改为你的MySQL密码
‘host’: ‘localhost’,
“database”: ‘medicine’ # 数据库名,如果不存在会自动创建
}

  1. 数据文件:

    • 确保 data 文件夹下有 final_file.csv 数据集。
  2. 运行 Flask 应用:
    python create_flask.py

  3. 访问系统:

    • 在浏览器中访问 http://127.0.0.1:5000/。
    • 首次运行会自动初始化数据库并训练模型。
    • 管理员账号:username: admin, password: 111

7. 项目亮点

  • 前后端分离: 采用 Flask 作为后端 API,前端使用纯 HTML、CSS 和 JavaScript,结构清晰。
  • 机器学习集成: 实现了基于随机森林的糖尿病预测模型,并支持模型的训练和重新训练。
  • 数据可视化: 利用 ECharts 库直观展示预测结果(饼图)和数据对比(柱状图)。
  • 用户管理: 完善的用户登录、注册、个人信息修改功能。
  • 管理员功能: 提供全面的数据管理界面,方便管理员对用户、历史记录和模型数据进行维护。
  • 数据持久化: 所有用户数据、历史记录和模型训练数据都存储在 MySQL 数据库中。
  • 数据清洗与导入: 首次运行时自动检测并导入 CSV 数据到数据库,并进行基本的数据清洗。
↓如有任何问题请加下方推广QQ↓
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐