月经周期预测工具

一款基于多层感知机(MLP)神经网络的Web应用,通过生活习惯和生理因素预测月经周期日期。

  • by DevhanDod
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 DevhanDod/MCP

使用说明

MCP-月经周期预测

一个基于网络的应用程序,使用多层感知器(MLP)神经网络根据生活方式和生理因素预测月经周期日期。

🌐 现场演示: https://devhandod.github.io/MCP/

特性

  • 🧠 AI驱动:基于生活方式因素训练的MLP神经网络
  • 🌐 在浏览器中运行:不需要服务器-使用Pyodide(WebAssembly中的Python)
  • 📱 响应式:适用于台式机和移动设备
  • 🔒 隐私第一:所有处理都在浏览器本地进行
  • 📄 多页用户界面:表格和结果见单独视图

运作原理

该应用程序完全在您的浏览器中运行,使用 皮奥迪斯 (Python编译为WebAssembly):

  1. 用户访问该页面
  2. Pyodide加载Python运行时(~5MB)
  3. scikit学习和依赖加载(~15MB)
  4. 浏览器中的ML模型训练(约3秒)
  5. 准备好做出预测了! ✅

输入特征

类别 字段
个人 年龄、体重(kg)、身高(m)→ 计算BMI
生活方式 压力水平(1-10)、睡眠时间、运动频率、饮食
循环信息 周期长度、周期长度、症状、上次周期开始日期

模型架构

Input Layer (6 numerical + 3 categorical features)
    ↓
Hidden Layer 1 (32 neurons, ReLU)
    ↓
Hidden Layer 2 (16 neurons, ReLU)
    ↓
Output Layer (1 neuron → days until next period)
  • 框架:scikit学习MLPRegressor
  • 训练:500个样本,80/20列/测试分割
  • 优化:Adam优化器,提前停止

本地运行

选项1:浏览器版本(静态)

# Start a local server
python -m http.server 8000

# Open http://localhost:8000 in your browser

选项2:Flask版本(完整服务器)

# Install dependencies with uv
uv sync

# Run the Flask app
uv run python app.py

# Open http://localhost:5000

选项3:独立版本

# Run the standalone version (trains on startup)
uv run python main.py

# Open http://localhost:5001

项目结构

MCP/
├── index.html              # Static web app (GitHub Pages)
├── app.py                  # Flask app with templates
├── main.py                 # Self-contained Flask app
├── model.py                # MLP model class (TensorFlow)
├── train_model.py          # Training script
├── templates/              # Flask HTML templates
│   ├── index.html
│   └── results.html
├── static/                 # CSS and JavaScript
│   ├── css/style.css
│   └── js/
├── CW1_*.ipynb            # Jupyter notebook analysis
├── pyproject.toml         # Python project config
├── uv.lock                # Dependency lockfile
└── .github/workflows/     # GitHub Pages deployment

技术

组件 技术
ML(浏览器) 通过Pyodide学习scikit
ML(本地) TensorFlow/scikit学习
浏览器运行时 Pyodide(WebAssembly)
Web框架 Flask(本地)
部署 GitHub页面
包管理器 uv

免责声明

⚠️ 仅用于教育目的。这不是一种医疗诊断工具,不应取代专业的医疗建议。

局限性

  • 基于统计模式的预测
  • 不模拟激素活动
  • 不适合不规则周期或医疗条件

学分

开发者Devhan Dodampahala

  • UOW ID:w1956126
  • IIT ID: 20221394

课程:应用人工智能
机构:威斯敏斯特大学/IIT

许可证

作为课程的一部分,为学术目的而创建。