基于FastAPI构建的糖尿病风险预测系统

糖尿病风险预测系统

基于 FastAPI 构建的糖尿病风险预测系统,集成机器学习模型,提供风险评估和数据分析功能。

主要功能

  • 用户认证系统(登录/注册)
  • 基于机器学习的糖尿病风险预测
  • 预测历史记录追踪
  • 数据分析面板和可视化
  • 特征重要性分析
  • 响应式设计,支持移动端访问

技术栈

  • 后端框架: FastAPI
  • 前端技术: HTML, CSS, JavaScript
  • 数据库: SQLite
  • 机器学习: scikit-learn
  • 数据处理: pandas, numpy
  • 数据可视化: Chart.js
  • UI 框架: Bootstrap 5
  • 图标: Boxicons

项目结构

diabetesDemos/
├── data/                # 数据目录
│   └── diabetes.csv     # 训练数据集
├── model/               # 模型目录
│   ├── diabetes_model.pkl  # 训练好的模型
│   └── scaler.pkl         # 数据标准化模型
├── static/              # 静态资源
│   └── css/
│       └── style.css    # 自定义样式
├── templates/           # 模板文件
│   ├── base.html       # 基础模板
│   ├── index.html      # 首页
│   ├── login.html      # 登录/注册页
│   ├── predict.html    # 预测页面
│   ├── history.html    # 历史记录
│   └── analytics.html  # 数据分析
├── database.py         # 数据库操作
├── predictor.py        # 预测模型
├── main.py            # 主应用
└── requirements.txt    # 依赖清单

安装说明

  1. 克隆项目代码
  2. 创建并激活虚拟环境:
    python -m venv venv
    venv\Scripts\activate
    
  3. 安装依赖:
    pip install -i https://mirrors.aliyun.com/pypi/simple/ -r requirements.txt
    
  4. 运行应用:
    python main.py
    
  5. 访问地址:http://localhost:8000

使用指南

  1. 注册新账号或登录已有账号
  2. 进入预测页面
  3. 输入健康指标数据(支持以下指标):
    • 怀孕次数:0-17 次
    • 血糖水平:70-200 mg/dL
    • 血压:40-130 mm Hg
    • 皮褶厚度:7-99 mm
    • 胰岛素水平:0-846 mu U/ml
    • 体重指数:18-67 kg/m²
    • 糖尿病家族史指数:0.078-2.42
    • 年龄:21-81 岁
  4. 获取即时风险预测结果
  5. 查看预测历史记录
  6. 探索数据分析和见解

数据说明

系统使用以下健康指标进行预测:

  • 怀孕次数:历史怀孕次数
  • 血糖水平:空腹血糖浓度 (mg/dL)
  • 血压:舒张压 (mm Hg)
  • 皮褶厚度:三头肌皮褶厚度 (mm)
  • 胰岛素:2小时血清胰岛素水平 (mu U/ml)
  • 体重指数:身体质量指数 (kg/m²)
  • 糖尿病家族史:基于家族史计算的糖尿病风险指数
  • 年龄:年龄(岁)

模型信息

系统使用基于 Pima Indians 糖尿病数据库训练的逻辑回归模型。该模型使用 scikit-learn 训练,准确率约为 75%。模型特点:

  • 使用标准化处理确保数据一致性
  • 通过特征重要性分析提供决策依据
  • 提供风险概率评估

安全特性

  • 使用 SHA-256 进行密码加密
  • 基于会话的身份认证
  • CSRF 防护
  • 输入数据验证和清洗

功能亮点

  1. 用户友好的界面

    • 响应式设计,适配各种设备
    • 清晰的数据输入指引
    • 直观的结果展示
  2. 完整的数据追踪

    • 详细的预测历史记录
    • 支持历史数据查看和删除
    • 数据可视化分析
  3. 专业的分析功能

    • 预测结果分布统计
    • 特征重要性分析
    • 风险趋势追踪

注意事项

  • 本系统仅供参考,不应替代专业医疗建议
  • 预测结果基于统计模型,可能存在误差
  • 请在医生指导下理解和使用预测结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码获取

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值