蒋宝尚、conrad编译

又失眠?陪你做个机器学习模型,看看“睡个好觉”背后有什么秘诀

睡眠问题可能是很多当代都市青年的一大焦虑来源。

这样的失眠夜晚熟悉么?

一位不堪睡眠问题困扰的机器学习工程师Yash Soni开始了自救之路!希望从睡眠数据入手,分析一波自己的睡眠质量到底被什么影响了。

他从“手环”的健康数据入手,找到了几个很有趣的分析角度,比如,有哪些因素影响了稳定睡眠?狂看Netflix对周末晚上的睡眠有什么影响?

这波分析让Yash Soni受益匪浅,他也很慷慨的将这一过程记录分享给了各位,最后,祝大家都能睡个好觉!

确定数据搜集设备-手环

作者选择的是Fitbit Versa智能手环,无论是颜值,还是功能确实都很有料~~

当然,关键是最主要的功能,即健康检测非常好用,首先界面,这种展示数据的方式让人看起来非常舒服,另外,它提供的数据也非常丰富。

不过如果你有苹果手表,或者小米的手环,也可以按照此“套路”给自己分析一波。

首先,在分析之前,你要明确自己感兴趣的事情是什么,在作者看来,他自己感兴趣的是:

  • 我每天活动量有多少?我每天坐的时间真的很长吗?

  • 这些数据在周中和周末有什么区别吗?

  • 哪些因素消耗卡路里最快?

  • 我有没有遵循一个平稳的睡眠计划?有哪些因素影响了计划的实施?

  • 理解睡眠阶段并且找到那些有助于深度睡眠的东西。

  • 狂看Netflix对周末晚上的睡眠有什么影响?

  • 训练一个简单的机器学习模型,看看“睡个好觉”背后有什么秘诀

显然,Fitbit Versa提供的数据不能满足以上的分析目标。所以,要开始以下套路了~~

收集数据

第一个任务是找到从设备上取出数据的方式。通过扫描开发者页面,我找到他们提供网络接口来获取用户数据。检查这些API之后,你会被每分钟收集并存储的数据量大小所震惊。每一天走的步数、卡路里消耗、睡眠阶段甚至是心率都被记录下来了!

Web API:https://dev.fitbit.com/build/reference/web-api/

有时,这些吸引人的数据会让我们忘记个人信息会最终被分享。在看了他们隐私条款之后,我发现Fitbit做出了另外的检查来保证数据的安全性。不过要说清楚这一切需要写另一篇文章,所以为了不跑题,让我们继续探索数据。

注册这个app后拿到了必需的用户凭证去开始爬数据。在经过必需的几个授权步骤后,我收集并合并了我的每天活动量、睡眠和心率数据,放到Excel里。在清理数据后,数据集终于准备妥当了!

PS:所有爬虫代码可以从Jupyter记事本上找到:https://github.com/yashatgit/fitbit-analyzer

动量分析

Fitbit有一个很大范围的数据来衡量每日活动水平。步数,卡路里,层数等是一些标准度量。它也可以监测用户每天花了多少时间在不同激烈程度的运动上。

并没有刻意关注每日卡路里消耗,我在Fitbit上定了一个每天走8000步的目标。这些下面的图片提示我每天平均完成约7800步,这相当接近我的目标了。有很多研究表明每天10000步是最理想的,而这也应该是我的下一个目标。

周二到周六,我平均每天会花40分钟左右做剧烈运动,这可以简单的转换成锻炼。周日更少的时间单纯来自于我想偷懒。周一时间的下降证明了我周一上班的抑郁心情。

分析不同运动的每分钟卡路里消耗量揭示了一些有趣的发现。虽然有很多相似的数据,但很难去为每一个人泛化。因为这有很大一部分取决于健康水平、人口、技能、更重要的是如何享受做特定的运动。

跑步帮助我每分钟燃烧12卡路里。那么用很简单的数学可以发现:为了抵消一杯啤酒带来的伤害,我跑10分钟步就可以了。

网球据了第二位。这又是一个双赢,因为本人很喜欢网球!看到随着我的技术提高,数据也在变化是很有趣的。

游泳数据并没有震惊到我,因为我仍然努力在学习游泳技巧。在泳池里花了一些时间之后,这项锻炼转变为休闲运动。

要注意的是,卡路里消耗不应该是运动的唯一考量。但是,这碰巧成为我目前通过Fitbit考察的唯一考量。

最后,看不同的数据和其他数据有什么关系也很有用。画一个关系热图帮助我们揭开一些数据背后的秘密。

卡路里消耗和行走步数以及活动时间强烈相关。久坐时间和周中卡路里消耗负相关,这意味着我花了更多时间在周末休息。

睡眠分析

好的睡眠对于帮助改善心情、记忆和认知能力非常重要。我们花了差不多三分之一的时间睡觉。也就是我们一生大约花了26年睡在床上!虽然新陈代谢会变慢,但所有主要器官和系统仍继续在作用。因此,拥有良好的睡眠是很重要的。

随着读更多这方面的文章,我发现有很多常规套路可以帮助我们获得高睡眠质量。例如:

  • 遵照一个健康的睡眠规划

  • 晚上在躺上床前避免亮/蓝的光线

  • 快入夜时避免咖啡因

  • 睡在凉爽黑暗的房间里

  • 每天最少7-9小时的睡眠。当然,也有很多研究说5小时就能得到高质量睡眠

在实验进行过程中,我尝试跟着以上步骤让我自己遵守严格的睡眠计划。是的,是时候实操了!

从下面的图表,我发现我基本上每天都睡7个小时。虽然我能够在11点前上床,醒来的时间从5点半到7点不定。

虽然平均的睡眠时间差不多,但睡眠质量却天差地别。有些时候,我睡6个小时也很精神,但有时即使睡得时间很长也并没有感觉精神。我通过分析神秘的睡眠周期找到了答案。

虽然我们睡着了,我们的身体通常会经过几个睡眠周期,在以下几个阶段交替:

浅睡眠:这个阶段通常开始于入睡后的几分钟。在这个阶段呼吸和心率通常会微微下降。浅睡眠帮助精神和身体恢复。

深睡眠:深睡眠通常发生在入睡后最初的几个小时。呼吸变得更加缓慢,肌肉变得松弛的同时心率通常变得均匀。当我们早晨醒来感到神清气爽时,很可能我们经历了不错的深睡眠。深睡眠有助于身体恢复以及记忆力和学习能力。

快速眼动睡眠:快速眼动睡眠是一个睡眠的活跃时期,该期间内脑活动非常集中。快速眼动睡眠第一个阶段通常发生在最初阶段的深睡眠之后。呼吸变得更快、更不规则和更浅。眼睛向不同的方向快速移动,因此被称作快速眼动睡眠,简称REM。这个阶段我们一般会做梦。快速眼动睡眠在心情恢复、学习和记忆方面发挥重要的作用。

下面的图片表示平均来说,我们的身体花了17%的时间深度睡眠,19%快速眼动睡眠以及剩下的时间都是浅睡眠或快要醒的状态。从浅睡眠和深睡眠的时间绘图可以看到这些数字差别很大。

如果我们绘图出不同的睡眠阶段,我们可以看到在床上的时间和浅睡眠高度相关,但和深睡眠没什么关系。

这基本意味着仅仅通过睡得更多并不保证有好的深睡眠。我猜想这帮助证实睡眠学习的重要性:睡眠的质量比时长更重要。

在周中跟随一个严格的睡眠计划很容易,但到了周末要遵守计划则变得难完成得多。

上面这个箱型图表明星期六最受影响,睡觉时间在5到9个小时之间。Netflix狂欢以及周末的聚会也是另外的一些次要原因。对比之下,周日更小的箱型图描述了我为周一早晨的准备。看见箱型图表现出的那些无意识身体行为是很有趣的。

最后,我想看看是否每天的运动量对我的睡眠有影响。虽然我没有很多数据用于机器学习模型,一个起初的结果展现了一些有趣的结果。它预测出白天活动更多并且在晚上11点之前上床对最后的深睡眠时间有帮助。

虽然下结论还太早,一旦有更多睡眠数据和另外的提高模型准确度的特征,就能够重复这个实验。细节可以在Jupyter上看到。

https://github.com/yashatgit/fitbit-analyzer/blob/master/Fitbit_Data_Analysis.ipynb

这些都值得吗?

这个实验给我带来了收获。我找到了一些身体会给予回应的有趣方式。似乎一个机器可以帮助达到不同的结果。

下一步我计划制定一些提高活动量的目标。我也将尝试一些生物科技来看是否对我的睡眠有一些正面的影响。我也考虑建立一个Fitbit闹钟app来叫醒我,一旦我已经得到了充足的有质量的睡眠。(并不确定这样的app是否已经存在~)

相关报道:https://medium.freecodecamp.org/how-i-analyzed-the-data-from-my-fitbit-to-improve-my-overall-health-a2e36426d8f9

大数据文摘
大数据文摘

秉承“普及数据思维,传播数据文化,助⼒产业发展”的企业⽂化,我们专注于数据领域的资讯、案例、技术,形成了“媒体+教育+⼈才服务”的良性⽣态,致⼒于打造精准数据科学社区。

产业机器学习
1
相关数据
机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

规划技术

人工智能领域的「规划」通常是指智能体执行的任务/动作的自动规划和调度,其目的是进行资源的优化。常见的规划方法包括经典规划(Classical Planning)、分层任务网络(HTN)和 logistics 规划。

动量技术

优化器的一种,是模拟物理里动量的概念,其在相关方向可以加速SGD,抑制振荡,从而加快收敛

暂无评论
暂无评论~