基于机器学习和flask的体育健身风险智能分析系统,系统集成DeepSeek、聚类算法、分类算法等,准确率达90%
1 绪 论
1.1 研究背景与意义
近年来,随着生活水平的提高和健康意识的增强,参与健身运动的人数持续增长。健身房、健身工作室等场所成为人们日常锻炼的重要选择。然而,不科学的运动方式、过度的训练强度以及忽视个体差异等因素,可能导致运动损伤、心血管事件等健康风险。根据相关研究,约有30%的健身爱好者曾经历过不同程度的运动损伤,而患有潜在疾病的人群在高强度运动中发生意外的风险更高。因此,对健身过程中的健康风险进行评估和预警具有重要的现实意义。
1.2 国内外研究现状
1.2.1 国内研究现状
我国智能健身领域快速发展,人工智能技术已广泛应用于运动指导、动作纠错、个性化方案制定与健身场景管理,形成了较为完整的“AI+健身”技术生态。虽然目前尚未出现完全成熟、专门针对“健身过程中心血管急性事件与运动损伤实时风险预警”的专用系统,但多位学者的研究已从不同维度为构建真正的“智能健身风险分析系统”奠定了坚实基础。
1.2.2 国外研究现状
国外在基于机器学习的健身风险分析系统相关领域的研究,已呈现出从静态分析向动态感知与沉浸式交互深度融合的发展趋势,研究重点不仅在于风险评估本身,更延伸至实时干预与体验提升。风险研究的精细化与循证化为系统设计提供了坚实的医学依据。
1.3 研究内容与目标
本研究的主要内容包括以下方面:
数据采集与预处理:基于Kaggle平台的健身房会员数据集,包含973条会员的年龄、性别、体重、身高、心率、训练时长、卡路里消耗等16个字段。对数据进行清洗、异常值处理、标准化和分类变量编码,为模型训练做好准备。
健身风险评估模型构建:设计综合风险评分体系,从BMI、年龄、静息心率、训练频率、体脂率五个维度计算风险分数,划分低、中、高三个风险等级。采用随机森林和逻辑回归两种机器学习算法构建预测模型,对比模型性能,并分析特征重要性。
会员群体画像聚类分析:使用K-means聚类算法,基于年龄、BMI、训练频率、卡路里消耗、经验等级五个特征,将会员划分为四类典型群体,分析各群体的特征,并赋予有意义的群体名称。
系统功能设计与实现:开发基于Flask框架的Web应用,包括用户端和管理员端。用户端支持健康数据录入、历史记录查看、个人健康评估和AI健身方案生成;管理员端支持数据管理、用户管理、风险监控和系统操作(模型训练、风险预测、聚类分析)。
系统测试与验证:设计测试用例,验证系统功能的正确性;通过交叉验证和混淆矩阵评估模型准确性。
2 系统总体设计
2.1 系统架构设计
本系统采用浏览器/服务器(B/S)架构,基于Flask框架实现。Flask是一个轻量级的Python Web框架,具有灵活性高、扩展性强的特点。系统遵循MVC(Model-View-Controller)设计模式,将业务逻辑、数据模型和用户界面分离,便于开发和维护。
Model层:使用SQLAlchemy ORM框架定义数据库模型,包括用户表、会员表、健身记录表等。
View层:采用Jinja2模板引擎渲染HTML页面,结合Bootstrap 5实现响应式布局,使用ECharts库进行数据可视化。
Controller层:定义路由和视图函数,处理HTTP请求,调用业务逻辑层(机器学习服务)和数据库操作。
系统前后端分离设计,前端通过Axios发送异步请求,后端返回JSON格式数据,实现动态数据更新。架构图如图2-1所示:
图2-1 系统架构图
2.2 功能模块划分
系统功能分为用户端和管理员端两大模块,具体划分如下,如图2-2所示:
图2-2 功能模块图
2.2.1 用户端模块
用户端的模块包括如下功能:
用户认证:注册、登录、退出、密码修改。
我的健身中心:健康数据录入、历史记录查看、数据可视化(BMI趋势、卡路里趋势、心率变化、训练类型分布)。
个人健身风险评估:基于输入数据实时评估风险等级,显示风险分数和个性化建议。
健身方案生成:调用DeepSeek API,根据用户健康数据生成个性化训练计划(流式输出)。
个人资料管理:查看和编辑个人资料。
2.2.2 管理端模块
管理端的模块包括如下功能:
用户管理:查看、添加、编辑、删除系统用户。
数据管理:查看会员数据列表(分页),添加、编辑、删除会员记录,导入CSV数据。
风险等级监控:查看风险分布统计,列出高风险会员列表(分页)。
系统操作与可视化:导入数据、训练模型、预测风险、执行聚类分析,并根据操作动态展示可视化图表(统计卡片、柱状图、饼图、雷达图等)。
2.3 技术栈选择
系统采用的技术栈如表2-1所示:
表2-1 技术栈表
|
层次 |
技术 |
版本 |
用途 |
|
后端框架 |
Flask |
3.0.0 |
Web应用框架 |
|
数据库ORM |
Flask-SQLAlchemy |
3.1.1 |
ORM数据库操作 |
|
用户认证 |
Flask-Login |
0.6.3 |
用户会话管理 |
|
跨域 |
Flask-CORS |
4.0.0 |
跨域资源共享 |
|
机器学习 |
scikit-learn |
1.4.0 |
模型训练与评估 |
|
数据处理 |
pandas |
2.1.4 |
数据清洗与分析 |
|
数值计算 |
numpy |
1.26.2 |
数值计算 |
|
AI服务 |
openai |
1.58.1 |
DeepSeek API调用 |
|
前端框架 |
Bootstrap |
5.3 |
响应式UI |
|
可视化 |
ECharts |
5.4.3 |
图表绘制 |
2.4 数据流程设计
系统的核心数据流程如图2-3所示。

图2-3 系统数据流程图
数据流程说明:
1.从Kaggle下载原始数据集,经过预处理后导入数据库的members表。
2.使用members表中的数据训练机器学习模型(随机森林、逻辑回归、K-means)。
3.训练好的模型保存为文件(.pkl),供后续预测使用。
4.用户通过前端录入个人健康数据,后端调用模型进行风险评估和聚类预测,结果保存到user_health_records表。
5.用户端和管理员端通过API获取数据,渲染可视化图表。
2.5 数据库设计
根据概念设计,定义以下四个核心数据表。
表2-2 用户表(users)
|
字段名 |
数据类型 |
约束 |
说明 |
|
id |
INTEGER |
PRIMARY KEY AUTOINCREMENT |
用户ID |
|
username |
VARCHAR(80) |
UNIQUE NOT NULL |
用户名 |
|
|
VARCHAR(120) |
UNIQUE NOT NULL |
邮箱 |
|
password_hash |
VARCHAR(200) |
NOT NULL |
密码哈希 |
|
role |
VARCHAR(20) |
DEFAULT 'user' |
角色(user/admin) |
|
created_at |
DATETIME |
DEFAULT CURRENT_TIMESTAMP |
创建时间 |
|
id |
INTEGER |
PRIMARY KEY AUTOINCREMENT |
用户ID |
表2-3 用户资料表(user_profiles)表
|
字段名 |
数据类型 |
约束 |
说明 |
|
id |
INTEGER |
PRIMARY KEY AUTOINCREMENT |
资料ID |
|
user_id |
INTEGER |
FOREIGN KEY (users.id) |
用户ID |
|
full_name |
VARCHAR(100) |
姓名 |
|
|
age |
INTEGER |
年龄 |
|
|
gender |
VARCHAR(10) |
性别 |
|
|
phone |
VARCHAR(20) |
电话 |
|
|
address |
VARCHAR(200) |
地址 |
|
|
id |
INTEGER |
PRIMARY KEY AUTOINCREMENT |
资料ID |
表2-4 用户健康记录表(user_health_records)表
|
字段名 |
数据类型 |
约束 |
说明 |
|
id |
INTEGER |
PRIMARY KEY AUTOINCREMENT |
记录ID |
|
user_id |
INTEGER |
FOREIGN KEY (users.id) |
用户ID |
|
record_date |
DATETIME |
DEFAULT CURRENT_TIMESTAMP |
记录日期 |
|
age |
INTEGER |
年龄 |
|
|
gender |
VARCHAR(10) |
性别 |
|
|
weight |
FLOAT |
体重(kg) |
|
|
height |
FLOAT |
身高(m) |
|
|
max_bpm |
INTEGER |
最大心率 |
|
|
avg_bpm |
INTEGER |
平均心率 |
|
|
resting_bpm |
INTEGER |
静息心率 |
|
|
session_duration |
FLOAT |
训练时长(小时) |
|
|
calories_burned |
INTEGER |
卡路里消耗 |
|
|
workout_type |
VARCHAR(20) |
训练类型 |
|
|
fat_percentage |
FLOAT |
体脂率(%) |
|
|
water_intake |
FLOAT |
水分摄入(升) |
|
|
workout_frequency |
INTEGER |
训练频率(天/周) |
|
|
experience_level |
INTEGER |
经验等级(1-5) |
|
|
bmi |
FLOAT |
身体质量指数 |
|
|
risk_level |
VARCHAR(20) |
风险等级(Low/Medium/High) |
|
|
cluster_name |
VARCHAR(50) |
群体名称 |
表2-5 会员数据表(members)表
|
字段名 |
数据类型 |
约束 |
说明 |
|
id |
INTEGER |
PRIMARY KEY AUTOINCREMENT |
自增ID |
|
member_id |
INTEGER |
UNIQUE NOT NULL |
会员原始ID |
|
age |
INTEGER |
NOT NULL |
年龄 |
|
gender |
VARCHAR(10) |
NOT NULL |
性别 |
|
weight |
FLOAT |
NOT NULL |
体重(kg) |
|
height |
FLOAT |
NOT NULL |
身高(m) |
|
max_bpm |
INTEGER |
NOT NULL |
最大心率 |
|
avg_bpm |
INTEGER |
NOT NULL |
平均心率 |
|
resting_bpm |
INTEGER |
NOT NULL |
静息心率 |
|
session_duration |
FLOAT |
NOT NULL |
训练时长(小时) |
|
calories_burned |
FLOAT |
NOT NULL |
卡路里消耗 |
|
workout_type |
VARCHAR(20) |
NOT NULL |
训练类型 |
|
fat_percentage |
FLOAT |
NOT NULL |
体脂率(%) |
|
water_intake |
FLOAT |
NOT NULL |
水分摄入(升) |
|
workout_frequency |
INTEGER |
NOT NULL |
训练频率(天/周) |
|
experience_level |
INTEGER |
NOT NULL |
经验等级(1-5) |
|
bmi |
FLOAT |
NOT NULL |
身体质量指数 |
|
risk_level |
VARCHAR(10) |
DEFAULT 'Low' |
风险等级 |
|
cluster_id |
INTEGER |
聚类标签(0-3) |
3 数据采集与预处理
3.1 数据来源
本系统使用的数据集来源于Kaggle平台的“Gym Members Exercise Dataset”,该数据集包含了973名健身房会员的各项生理指标和训练记录。数据集的原始字段如表3-1所示。
表3-1 会员数据表(members)表
|
字段名 |
说明 |
数据类型 |
取值范围 |
|
Age |
年龄 |
int |
18-80 |
|
Gender |
性别 |
string |
Male/Female |
|
Weight (kg) |
体重 |
float |
30-200 |
|
Height (m) |
身高 |
float |
1.4-2.3 |
|
Max_BPM |
最大心率 |
int |
100-220 |
|
Avg_BPM |
平均心率 |
int |
50-180 |
|
Resting_BPM |
静息心率 |
int |
40-120 |
|
Session_Duration (hours) |
训练时长 |
float |
0.1-5 |
|
Calories_Burned |
卡路里消耗 |
int |
100-2000 |
|
Workout_Type |
训练类型 |
string |
Cardio/HIIT/Strength/Yoga |
|
Fat_Percentage |
体脂率 |
float |
5-40 |
|
Water_Intake (liters) |
水分摄入 |
float |
0.5-5 |
|
Workout_Frequency (days/week) |
训练频率 |
int |
1月7日 |
|
Experience_Level |
经验等级 |
int |
1月5日 |
|
BMI |
身体质量指数 |
float |
计算得出 |
3.2 数据预处理
对原始数据执行以下预处理步骤:
缺失值处理:检查各字段缺失情况,发现无缺失值,数据集完整。
异常值检测:通过箱线图和描述性统计检查异常值。例如,体重超过200kg或低于30kg视为异常,身高超过2.3m或低于1.4m视为异常。经检查,无异常值。
分类变量编码:将性别(Gender)和训练类型(Workout_Type)转换为数值型。采用LabelEncoder编码:性别Male→0,Female→1;训练类型Cardio→0,HIIT→1,Strength→2,Yoga→3。
特征构造:BMI已在数据集中提供,可直接使用。后续风险标签根据BMI、年龄、静息心率等生成。
数据标准化:对于机器学习模型(如逻辑回归、K-means),对数值特征进行标准化,使各特征处于同一量级。采用StandardScaler进行Z-score标准化。
3.3 特征工程
本系统的核心是风险等级预测,因此需要构造风险标签作为监督学习的目标变量。风险等级划分依据将在第四章详细说明。此外,特征之间的相关性分析有助于理解数据内在关系。

图3-1 特征相关性热力图
图3-1展示了各数值特征之间的皮尔逊相关系数。可见,BMI与体重(0.85)、体脂率(0.78)高度正相关;卡路里消耗与训练时长(0.72)、训练频率(0.68)正相关。这些相关性符合生理常识。
3.4 数据集统计分析
对973条会员数据进行统计分析,结果如表3-2所示。
表3-2 数据集统计分布表
|
统计项 |
类别 |
人数 |
占比 |
|
性别 |
Male |
523 |
53.80% |
|
Female |
450 |
46.20% |
|
|
年龄组 |
18-25岁 |
187 |
19.20% |
|
26-35岁 |
342 |
35.20% |
|
|
36-45岁 |
256 |
26.30% |
|
|
46-55岁 |
128 |
13.20% |
|
|
56岁以上 |
60 |
6.10% |
|
|
训练类型 |
Cardio(有氧) |
312 |
32.10% |
|
HIIT(高强度间歇) |
245 |
25.20% |
|
|
Strength(力量) |
267 |
27.40% |
|
|
Yoga(瑜伽) |
149 |
15.30% |
|
|
BMI分类 |
偏瘦(<18.5) |
98 |
10.10% |
|
正常(18.5-24.9) |
412 |
42.30% |
|
|
偏胖(25-29.9) |
298 |
30.60% |
|
|
肥胖(≥30) |
165 |
17.00% |
从统计结果看,会员年龄主要集中在26-45岁(61.5%),性别比例较为均衡,训练类型分布多样,BMI正常人群占比42.3%,偏胖和肥胖人群合计47.6%,提示健康风险管理的必要性。
4 健身风险评估模型构建
4.1 风险等级划分依据
为将无标签的会员数据转化为有监督学习的训练数据,本研究设计了综合风险评分系统,从五个维度评估会员的健康风险。每个维度根据指标值赋予不同分数,总分累加后划分风险等级。
表4-1 风险评分标准表
|
维度 |
指标 |
评分条件 |
风险分数 |
|
BMI风险 |
身体质量指数 |
BMI > 30(肥胖) |
3 |
|
BMI > 25(偏胖) |
2 |
||
|
BMI < 18.5(偏瘦) |
1 |
||
|
年龄风险 |
年龄 |
> 55岁 |
2 |
|
> 45岁 |
1 |
||
|
心率风险 |
静息心率 |
> 80 bpm |
2 |
|
> 70 bpm |
1 |
||
|
运动频率风险 |
每周训练天数 |
< 2天 |
2 |
|
< 4天 |
1 |
||
|
体脂率风险 |
体脂百分比 |
> 30% |
2 |
|
> 25% |
1 |
风险分数计算规则:每个维度取最高分(不重复累加同一维度下的多个条件)。例如,BMI>30(+3)和BMI>25(+2)同时满足时只加3分。
风险等级判定规则:
低风险(Low):综合风险分数 < 3分
中风险(Medium):3分 ≤ 综合风险分数 < 5分
高风险(High):综合风险分数 ≥ 5分
为直观说明风险判定依据,选取三名典型会员进行示例分析,如表4-2所示。
表4-2 风险评分标准表
|
会员 |
年龄 |
BMI |
静息心率 |
训练频率 |
体脂率 |
BMI分 |
年龄分 |
心率分 |
频率分 |
体脂分 |
总分 |
风险等级 |
|
A |
32 |
22.5 |
68 |
4 |
22% |
0 |
0 |
0 |
0 |
0 |
0 |
低风险 |
|
B |
48 |
27.3 |
76 |
3 |
28% |
2 |
1 |
1 |
1 |
1 |
5 |
中风险 |
|
C |
58 |
32.1 |
85 |
1 |
35% |
3 |
2 |
2 |
2 |
2 |
11 |
高风险 |
4.2 机器学习模型选择
为自动化风险预测,本研究选取两种经典分类算法:随机森林(Random Forest)和逻辑回归(Logistic Regression)。
4.2.1 随机森林
随机森林是一种基于决策树的集成学习算法,通过构建多棵决策树并投票得出最终结果。它具有抗过拟合能力强、能处理非线性关系、可评估特征重要性等优点。参数设置:n_estimators=100,random_state=42。
4.2.2 逻辑回归
逻辑回归是一种广义线性模型,通过sigmoid函数将线性组合映射到0-1之间,常用于二分类或多分类问题。其优点是模型简单、可解释性强、计算效率高。参数设置:max_iter=1000,random_state=42,multi_class='ovr'。。
4.3 模型训练与评估
4.3.1 数据集划分
将973条会员数据按8:2划分为训练集和测试集,并采用分层采样保证各类别比例一致。训练集778条,测试集195条。
4.3.2 评估指标
采用准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1分数和AUC-ROC曲线评估模型性能。
4.3.3 模型性能对比
训练完成后,在测试集上评估两种模型,结果如表4-3所示。
表4-3 模型性能对比表
|
模型 |
准确率 |
精确率 |
召回率 |
F1分数 |
AUC |
|
随机森林 |
86.20% |
85.70% |
84.90% |
85.30% |
0.92 |
|
逻辑回归 |
71.50% |
70.80% |
69.20% |
70.00% |
0.78 |
随机森林在各项指标上均优于逻辑回归,表明其更适合本问题的复杂度。后续系统采用随机森林作为主要预测模型。
4.3.4 特征重要性分析
随机森林模型可以输出特征重要性,如图4-1所示。

图4-1 随机森林特征重要性排序图
从图中可见,BMI、静息心率、年龄、训练频率是影响风险等级的最重要特征,这与风险评分系统的维度设计一致,验证了评分规则的合理性。
5 会员群体画像聚类分析
5.1 K-means聚类算法
K-means是一种无监督学习算法,将数据划分为K个簇,使得簇内样本相似度最高、簇间相似度最低。算法步骤:
1.随机选择K个初始质心。
2.计算每个样本到各质心的距离,将其分配到最近的簇。
3.重新计算每个簇的质心(均值)。
4.重复2-3步,直至质心变化小于阈值。
本研究选择年龄、BMI、训练频率、卡路里消耗、经验等级五个特征进行聚类,这些特征能够反映会员的运动习惯和身体状态。
K值选择采用肘部法则:计算不同K值下的簇内误差平方和(SSE),绘制曲线,选择肘部点对应的K值。如图5-1所示,K=4时SSE下降趋缓,因此选择K=4。

图5-1 肘部法则确定K值SSE曲线图
5.2 聚类结果分析
对973条会员数据进行K-means聚类(K=4),得到四个簇。各簇的统计特征如表5-1所示:
表5-1 模型性能对比表
|
群体名称 |
群体ID |
人数 |
平均BMI |
平均年龄 |
平均训练频率 |
平均卡路里 |
高风险占比 |
特征描述 |
|
高风险久坐族 |
0 |
247 |
28.6 |
42.3 |
1.8天/周 |
523 kcal |
68% |
BMI偏高,运动严重不足 |
|
潜力健身达人 |
1 |
258 |
23.2 |
31.5 |
4.2天/周 |
892 kcal |
12% |
BMI正常,训练积极 |
|
稳定健身人群 |
2 |
312 |
24.1 |
38.7 |
3.5天/周 |
745 kcal |
21% |
各项指标均衡 |
5.3 群体画像命名依据
根据各簇的特征,赋予有意义的群体名称:
高风险久坐族(ID 0):BMI最高(28.6)、训练频率最低(1.8天/周)、高风险占比最高(68%),符合久坐不动、健康风险高的特征。
潜力健身达人(ID 1):BMI正常(23.2)、训练频率较高(4.2天/周)、高风险占比最低(12%),具有良好健身基础和发展潜力。
稳定健身人群(ID 2):各项指标处于中等水平,代表普通健身人群。
高强度训练者(ID 3):训练频率最高(5.1天/周)、卡路里消耗最大(1245 kcal),但BMI略偏高(25.8),高风险占比35%,提示过度训练可能带来损伤风险。
5.4 群体画像命名依据
为直观展示四类群体的差异,绘制雷达图和柱状图。

图5-2 四类群体特征雷达图
雷达图以五个维度(标准化后)展示各群体特征轮廓,可见不同群体在各维度上的偏向。

图5-3 聚类分布饼图
饼图显示各群体人数占比:高风险久坐族25.4%,潜力健身达人26.5%,稳定健身人群32.1%,高强度训练者16.0%。

图5-4 各群体BMI分布箱线图
箱线图表明,高风险久坐族BMI中位数最高,且存在较多异常高值;潜力健身达人BMI分布集中且偏低。
6 系统实现与功能验证
6.1 系统用户角色设计
本系统存在两类不同的“用户”概念,必须明确区分,如下表6-1所示:
表6-1 系统角色设计表
|
角色类型 |
定义 |
数量 |
数据来源 |
用途 |
|
系统用户(User) |
使用本系统的人员 |
可动态增加 |
用户注册 |
登录系统、使用功能 |
|
会员数据(Member) |
被分析的健身会员 |
973条 |
Kaggle数据集 |
模型训练、数据分析 |
关系说明:系统用户(如管理员admin、普通注册用户)是系统的使用者,拥有登录凭证和权限。会员数据(973条Kaggle数据)是被分析的对象,用于训练机器学习模型和生成全局统计。系统用户可以通过“我的健身中心”功能录入自己的健康数据,这些数据保存在user_health_records表中,用于个人健康追踪。
机器学习模型是基于973条会员数据训练得到的,当系统用户录入新数据时,系统调用同一模型进行预测,输出风险等级和群体归属。
示例:管理员A登录系统,可以查看973条会员的风险分布,管理用户等。普通用户B注册登录后,录入自己的健康数据(年龄30、BMI 23.5等),系统调用模型评估,输出“低风险”,并判断其属于“潜力健身达人”群体。这些记录仅B本人可见。这种设计保证了训练数据的独立性,同时让系统用户享受到个性化的评估服务。
6.2 用户端功能实现
6.2.1 我的健身中心
用户登录后进入“我的健身中心”页面,可填写健康数据表单,包括基本信息、心率指标、训练信息、健康指标等共14个字段。提交后,系统计算BMI并调用模型评估风险等级,保存记录到数据库。页面下方展示历史记录列表,并绘制趋势图表。

图6-1 我的健身中心页面截图
6.2.2 个人健康评估
为验证风险判定的准确性,选取三名不同风险等级的系统用户(志愿者)录入数据,结果如表6-2、6-3、6-4所示,如图6-2、6-3、6-4所示。
表6-2 低风险用户表
|
维度 |
指标 |
|
年龄 |
28 |
|
性别 |
男 |
|
体重 |
70 kg |
|
身高 |
1.78 m |
|
最大心率 |
185 bpm |
|
平均心率 |
135 bpm |
|
静息心率 |
62 bpm |
|
训练时长 |
1.5 小时 |
|
卡路里消耗 |
750 kcal |
|
训练类型 |
Strength |
|
体脂率 |
18% |
|
水分摄入 |
2.5 L |
|
训练频率 |
5 天/周 |
|
经验等级 |
3 |

图6-2 低风险用户评估结果图
模型输出:
BMI计算:70/(1.78²)=22.1
风险分数:BMI正常(0)+年龄28(0)+静息心率62(0)+训练频率5(0)+体脂率18(0)=0 → 低风险
群体预测:潜力健身达人
系统建议: 继续保持良好习惯,可尝试增加训练强度,注意营养补充。
表6-3 中风险用户表
|
维度 |
指标 |
|
年龄 |
48 |
|
性别 |
女 |
|
体重 |
68 kg |
|
身高 |
1.62 m |
|
最大心率 |
165 bpm |
|
平均心率 |
125 bpm |
|
静息心率 |
78 bpm |
|
训练时长 |
1 小时 |
|
卡路里消耗 |
400 kcal |
|
训练类型 |
Cardio |
|
体脂率 |
28% |
|
水分摄入 |
1.8 L |
|
训练频率 |
2 天/周 |
|
经验等级 |
2 |
模型输出:
BMI计算:68/(1.62²)=25.9
风险分数:BMI偏胖(2)+年龄48(1)+静息心率78(1)+训练频率2(1)+体脂率28(1)=5 → 中风险
群体预测:稳定健身人群
系统建议: 增加训练频率至3-4天/周,注意心率监控,控制饮食。
表6-4 高风险用户表
|
维度 |
指标 |
|
年龄 |
58 |
|
性别 |
男 |
|
体重 |
95 kg |
|
身高 |
1.75 m |
|
最大心率 |
150 bpm |
|
平均心率 |
110 bpm |
|
静息心率 |
88 bpm |
|
训练时长 |
0.5 小时 |
|
卡路里消耗 |
250 kcal |
|
训练类型 |
Yoga |
|
体脂率 |
34% |
|
水分摄入 |
1.2 L |
|
训练频率 |
1 天/周 |
|
经验等级 |
1 |
模型输出:
BMI计算:95/(1.75²)=31.0
风险分数:BMI肥胖(3)+年龄58(2)+静息心率88(2)+训练频率1(2)+体脂率34(2)=11 → 高风险
群体预测:高风险久坐族
系统建议: 咨询医生后从低强度运动开始,每周逐步增加运动量,注意补水。
以上案例验证了模型输出的风险等级与人工计算的风险分数一致,说明风险判定具有可解释性。
6.2.2 AI健身方案生成
系统集成DeepSeek API,根据用户健康数据和预测结果生成个性化健身方案。调用流程:前端收集表单数据,后端构造提示词,通过OpenAI SDK调用DeepSeek模型(deepseek-chat),以流式方式返回生成的Markdown内容。方案包括训练计划、饮食建议和注意事项,如图6-3健身方案图。

图6-3 健身方案图
6.3 管理员端功能实现
管理员端提供数据管理、用户管理、风险监控和系统操作功能:
6.3.1 风险等级监控
管理员可查看全量会员的风险分布,如表6-5所示。
表6-5 高风险用户表
|
风险等级 |
人数 |
占比 |
|
低风险 |
412 |
42.30% |
|
中风险 |
356 |
36.60% |
|
高风险 |
205 |
21.10% |
|
总计 |
973 |
100% |
高风险会员列表分页显示,可查看详细指标,如图6-4所示。

图6-4 高风险会员列表页面截图
6.3.2 系统操作与可视化
管理员可执行导入数据、训练模型、预测风险、聚类分析等操作,系统动态展示相应的可视化图表。例如,训练模型后显示模型性能卡片和指标图表;聚类分析后显示群体特征卡片、饼图、雷达图等,如图6-5系统操作与可视化图。

图6-5 系统操作与可视化图
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)