✍️ 作者:Echo_Wish |比你更懂你身体的,可能不是医生,是你的手环。
还记得最初买智能手环的理由吗?也许是为了看时间,也许是为了偶尔数个步,或者装酷。可现在,它越来越像个“懂你”的助手:
今天咱们就来聊聊——可穿戴设备采集的数据到底有哪些?怎么分析?又能干嘛?
别怕枯燥,我不仅带你理解数据怎么采集,还手把手教你怎么用 Python 来分析这些“生命数据”,真正做到:用数据读懂身体,用技术守护健康!
绝大多数可穿戴设备(如 Apple Watch、小米手环、华为手表等)都采集了这些核心指标:
指标 | 说明 | 应用场景 |
---|---|---|
步数 | 基于加速度计计算 | 健身打卡、运动量评估 |
心率 | 基于PPG传感器 | 心血管健康监测、运动强度判断 |
睡眠 | 基于加速度+心率变化 | 睡眠质量评估、失眠干预 |
血氧 | 基于光学传感器 | 疫情期间重要参考、生理状态监控 |
体温 | 高频检测体表温度 | 疾病预警 |
这些指标,大多数每分钟甚至每秒就会产生一次数据。日积月累,就成了“时间序列大数据”。
我们模拟一个从可穿戴设备导出的心率+步数+睡眠数据集:
timestamp,heart_rate,steps,sleep_state
2025-04-01 08:00:00,72,5,awake
2025-04-01 08:01:00,74,15,awake
2025-04-01 08:02:00,75,20,awake
...
2025-04-01 23:30:00,65,0,light_sleep
是不是很像你在 App 里导出来的样子?别急,咱们接下来动手分析!
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv("wearable_data.csv", parse_dates=['timestamp'])
df.set_index('timestamp', inplace=True)
plt.figure(figsize=(12, 4))
df['steps'].plot(title='每分钟步数')
plt.ylabel('步数')
plt.grid(True)
plt.show()
推荐图片展示效果:
👉 横轴为时间,纵轴为步数,可见早上、中午、晚上各段活动高峰。
plt.figure(figsize=(12, 4))
df['heart_rate'].plot(color='red', title='心率曲线')
plt.ylabel('心率(BPM)')
plt.grid(True)
plt.show()
可以进一步分析极值、均值:
print("平均心率:", df['heart_rate'].mean())
print("最大心率:", df['heart_rate'].max())
延伸分析:
sleep_data = df[df['sleep_state'] != 'awake']
sleep_time = sleep_data.shape[0] / 60 # 转为小时
deep_sleep = sleep_data[sleep_data['sleep_state'] == 'deep_sleep'].shape[0] / 60
score = deep_sleep / sleep_time * 100
print(f"总睡眠时长:{sleep_time:.1f} 小时")
print(f"深度睡眠比例:{score:.1f}%")
再做个图表展示不同睡眠状态的时间分布:
sleep_counts = sleep_data['sleep_state'].value_counts()
sleep_counts.plot(kind='bar', title='睡眠状态分布')
plt.ylabel('分钟数')
plt.show()
是不是每次运动后都想知道自己是不是过度训练?那你可以试试用机器学习来预测疲劳程度。
我们简单模拟一个二分类模型,判断是否进入疲劳状态:
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
# 模拟标签:1 表示疲劳,0 表示正常
df['fatigue'] = (df['heart_rate'] > 110) & (df['steps'] > 200)
df['fatigue'] = df['fatigue'].astype(int)
X = df[['heart_rate', 'steps']]
y = df['fatigue']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
model = RandomForestClassifier()
model.fit(X_train, y_train)
print("预测准确率:", model.score(X_test, y_test))
结合可穿戴设备提供的实时数据流,未来可以实时监测并预警疲劳,甚至结合语音播报、推送建议:“你该歇会儿啦~”。
别以为只能健身打卡,其实这玩意儿在很多领域已经“大展拳脚”:
可穿戴设备,不只是一个“看时间的手环”,它是我们与数据、健康、生活质量之间的桥梁。
未来,它会越来越像一个 “你随身携带的健康顾问”,能说会算,能看能听,还能预测。
作为技术人,别让它只是 App 图表,而是要思考:如何让这些数据成为主动干预健康、提升生活质量的工具?
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。