使用说明
MCP-月经周期预测
一个基于网络的应用程序,使用多层感知器(MLP)神经网络根据生活方式和生理因素预测月经周期日期。
🌐 现场演示: https://devhandod.github.io/MCP/
特性
- 🧠 AI驱动:基于生活方式因素训练的MLP神经网络
- 🌐 在浏览器中运行:不需要服务器-使用Pyodide(WebAssembly中的Python)
- 📱 响应式:适用于台式机和移动设备
- 🔒 隐私第一:所有处理都在浏览器本地进行
- 📄 多页用户界面:表格和结果见单独视图
运作原理
该应用程序完全在您的浏览器中运行,使用 皮奥迪斯 (Python编译为WebAssembly):
- 用户访问该页面
- Pyodide加载Python运行时(~5MB)
- scikit学习和依赖加载(~15MB)
- 浏览器中的ML模型训练(约3秒)
- 准备好做出预测了! ✅
输入特征
| 类别 | 字段 |
|---|---|
| 个人 | 年龄、体重(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
许可证
作为课程的一部分,为学术目的而创建。