一位缺觉的父亲记录了他双胞胎宝宝的睡眠数据 并交给机器学习,结果……

简介:


 

◆ ◆ 

导读


初为人父人母,最大的体会必须是:缺觉!喂奶换尿布,孩子一夜醒来好几次,没把小宝宝哄睡,却把自己哄睡了,那时候你的内心一定是崩溃的。


国外一个缺觉的父亲实在受够了他的双胞胎宝宝,联合他的妻子,统计了两个娃的睡眠及喂养时间数据等,用机器学习分析预测,总结并掌握两个孩子的作息规律,科学的育儿方法让他们伺候好孩子的同时,又将孩子对自己的睡眠影响降到最低,真是太机智了。技术咖拯救睡眠啊!


接下来就让我们看看这对夫妻是如何收集数据、并利用机器学习分析数据的,或许年轻的我们可以学一手。


这样看来机器学习和数据决策其实并没有那么高高在上,可能也可以帮我们解决一些生活中的有趣问题。


◆ ◆ 

前言

 

一个月前,我试着用A / B测试我们那对双胞胎,看看怎样不同的“治疗”或输入参数会造成较久的睡眠,当然这由我们自己来完成。我发现睡眠模式相当不稳定,并没有找到促进睡眠相关的东西。随着时间的推移,他们更大程度上倾向于自然醒。然而,现在他们已经四个月大了,他们已经开始普遍但是很少讨论的睡眠颠倒(Sleep Regression)。我又一次发现自己渴望获得更多的睡眠。我先前投的文章中确实有一个评论说,“无论多么渴望睡更多,我都会努力去找,我能找到对于睡眠有用的东西吗”?嘿嘿,我找到了。从此,我转而关注另一项计算机科技:机器学习。


机器学习是一个计算机科学的领域,提供 “教”计算机或程序的方式,而不需要给他们一些分散的指令集。在正常编程中,我会让计算机按顺序执行一列命令,按逻辑基于输入的方法来做决策,不过这些程序永远都不会离开已定义好的轨迹。尽管这听起来比它实际上运行的方式更像终结者(Terminator),但是机器学习可以接受人拿给的用于“学习”的数据,以此作为预测的基础。虽然这在整个科技行业变得越来越流行,而AI主要被用于浏览购买行为和推荐,也许最有趣的是,分类和识别照片和画作,这大多是谷歌在做。我没有找到什么例子用于做家长带小孩。


多亏我的妻子是会计背景,还有我们的A型人格,我们详细记录了两个男孩的进食和睡眠行为。还记得这个表格吗?



◆ ◆ 

“大数据”,毫不夸张的讲


使用这些数据,我开始寻找输入参数的最优组合,在这个例子中,我关注食物总消耗、最后喂食时间和最后喂量,来决定什么情况会导致男孩的最久时间睡眠。最重要的是我可以让计算机做艰苦的工作。另外,我们这组模式有两倍的数据,因为很明显我们有两个男孩。


有几个可用的巨大机器学习库,他们跨编程语言。虽然我主要使用Java和Javascript工作,我选择了Python库sklearn,因为我熟悉Python以及这个灵活的脚本语言可以说是近乎完美的应用。有许多对这个库和文档极好的教程。


如果感兴趣,你可以在github上找到我的代码。


把我们从电子表格收集的数据导出来,我提取了过去一个月的数据点。因为婴儿正经历快速的成长发育变化,我觉得一个月的数据乘以2个婴儿,是一种对近因效应较好的平衡,而且数据足够用于做预测了。




◆ ◆ 

放在一起进行编码


我也得到了一些有趣的统计值,包括:平均每天我们喂食两男孩(各)27.5盎司,通常让他们在睡觉在7:25睡觉,睡前喂他们5.22盎司,它们平均睡9个小时。结果发现男孩75%的情况睡超过10小时。不赖的发现。但我知道我们还有一些工作可以改进。

 


总喂食

最后喂食时间

最后喂食量

睡眠时间(小时)

次数

62

62

62

62

均值

27.491935

7.455645

5.225806

9.084677

标准差

2.001008

0.331181

0.857357

1.726092

最小值

24.000000

6.750000

2.000000

3.500000

25%

26.000000

7.250000

5.000000

8.000000

50%

27.000000

7.375000

5.000000

9.000000

75%

29.000000

7.687500

6.000000

10.187500

最大值

32.000000

8.500000

7.000000

13.500000


采用这些数据,我能够画出对于睡眠时间的每个参数。


你可以看出数据间已经没有很强的相关性,至少多数不存在线性关系。最具线性特征的关系,还有很多离群点的,要属总进食量和睡眠小时之间的关系了。奇怪的是婴儿吃得多反而睡得少了。


有许多不同类型的机器学习算法。这些主要分为线性和非线性两种类型。我用了六种使用相当广泛的算法运行这组数据,看看每个能到的准确程度。以下是结果。

 

Logistic Regression: 0.303333 (0.211056)

Linear Discriminant Analysis: 0.376667 (0.157797)

K Neighbors Classifier: 0.286667 (0.073333)

Decision Tree Classifier: 0.356667 (0.196667)

GaussianNB: 0.183333 (0.076376)

Support Vector  Machine: 0.410000 (0.200028)

注:每种算法的准确程度,括号中的为标准差,或者采用一个形象的图表



在这里你可以看到,支持向量机算法在这些数据上完成的明显最好,虽然变化范围较宽,均值并不比其他的算法强很多。这些方法用于预测甚至没有一个超过50%的(均值)。这完全是由于数据的伪随机性质。即使有这样的结果,我决定继续尝试,希望能深入有更多新奇的发现。


采用支持向量机,我用输入的数据训练算法。用了这个,当我们哄孩子们上床,基于一天的食物量,以及睡前前最后一餐的量,我现在就可以预测出他们能睡多久。例如,给他们28盎司,哄他们7点上床,最后一餐喂6盎司,将造成一个比较差的8小时的睡眠。


◆ ◆ 

结论


用目前训练出的算法,某种程度上,我可以预测将会得到多久的睡眠。更重要的是,我可以从箱型图(Box Plot)中,6种流行的算法性能趋线,看出他们的表现。并且试着优化,明白怎样类型的行为可以造成更久的睡眠。一种反常规的现象是,早些躺下,吃更少的食物,实际上一整天的睡眠时间却增加了。这可能是由于很多因素导致的,但我的理论是,吃得少那补充的就少,胃收缩的也就减少,因此睡眠也就更安稳。有多少次你是狼吞虎咽,然后奇怪的是在半夜饿醒了?


很不幸,正如用A/B测试一样,没有一种个体输入对睡眠似乎是直接的。我想如果真的有人已经发现了,能挣数百万。综上所述,机器学习可以找到变量之间一些像这些的趋势和关联,从而得到比A/B测验或者“试误法”(trial and error)更好、更准确的结果,仍然结果还差得很远呢。从这组数据集,最多可以得到41%的预测准确率。这意味着结果往往是错误的。由于频繁的发育变化,还有男孩之间的差异,很难在他们之间应用数据。再次申明,样本量大一点是有帮助的,但我们打算很快要三胞胎。


尽管如此,这些结果总比没有好,帮助论证了机器学习和数据科学领域的许诺。比起依据直觉,我更喜欢靠数据来决策,和这些证实我猜测的数据,只会让我对我们的育儿方法感觉更好。

原文发布时间为:2016-11-04


本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

相关文章
|
20天前
|
机器学习/深度学习 人工智能 自然语言处理
模型训练数据-MinerU一款Pdf转Markdown软件
MinerU是由上海人工智能实验室OpenDataLab团队开发的开源智能数据提取工具,专长于复杂PDF文档的高效解析与提取。它能够将含有图片、公式、表格等多模态内容的PDF文档转化为Markdown格式,同时支持从网页和电子书中提取内容,显著提升了AI语料准备的效率。MinerU具备高精度的PDF模型解析工具链,能自动识别乱码,保留文档结构,并将公式转换为LaTeX格式,广泛适用于学术、财务、法律等领域。
125 4
|
1月前
|
机器学习/深度学习 数据采集 数据处理
谷歌提出视觉记忆方法,让大模型训练数据更灵活
谷歌研究人员提出了一种名为“视觉记忆”的方法,结合了深度神经网络的表示能力和数据库的灵活性。该方法将图像分类任务分为图像相似性和搜索两部分,支持灵活添加和删除数据、可解释的决策机制以及大规模数据处理能力。实验结果显示,该方法在多个数据集上取得了优异的性能,如在ImageNet上实现88.5%的top-1准确率。尽管有依赖预训练模型等限制,但视觉记忆为深度学习提供了新的思路。
34 2
|
2月前
|
机器学习/深度学习 存储 人工智能
揭秘机器学习背后的神秘力量:如何高效收集数据,让AI更懂你?
【10月更文挑战第12天】在数据驱动的时代,机器学习广泛应用,从智能推荐到自动驾驶。本文以电商平台个性化推荐系统为例,探讨数据收集方法,包括明确数据需求、选择数据来源、编写代码自动化收集、数据清洗与预处理及特征工程,最终完成数据的训练集和测试集划分,为模型训练奠定基础。
78 3
|
2月前
|
机器学习/深度学习 算法 Python
“探秘机器学习的幕后英雄:梯度下降——如何在数据的海洋中寻找那枚失落的钥匙?”
【10月更文挑战第11天】梯度下降是机器学习和深度学习中的核心优化算法,用于最小化损失函数,找到最优参数。通过计算损失函数的梯度,算法沿着负梯度方向更新参数,逐步逼近最小值。常见的变种包括批量梯度下降、随机梯度下降和小批量梯度下降,各有优缺点。示例代码展示了如何用Python和NumPy实现简单的线性回归模型训练。掌握梯度下降有助于深入理解模型优化机制。
40 2
|
3月前
|
机器学习/深度学习 数据采集 监控
探索机器学习:从数据到决策
【9月更文挑战第18天】在这篇文章中,我们将一起踏上一段激动人心的旅程,穿越机器学习的世界。我们将探讨如何通过收集和处理数据,利用算法的力量来预测未来的趋势,并做出更加明智的决策。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和思考方式。
|
2月前
|
机器学习/深度学习 算法 数据处理
EM算法对人脸数据降维(机器学习作业06)
本文介绍了使用EM算法对人脸数据进行降维的机器学习作业。首先通过加载ORL人脸数据库,然后分别应用SVD_PCA、MLE_PCA及EM_PCA三种方法实现数据降维,并输出降维后的数据形状。此作业展示了不同PCA变种在人脸数据处理中的应用效果。
42 0
|
3月前
|
机器学习/深度学习 数据采集 算法
利用未标记数据的半监督学习在模型训练中的效果评估
本文将介绍三种适用于不同类型数据和任务的半监督学习方法。我们还将在一个实际数据集上评估这些方法的性能,并与仅使用标记数据的基准进行比较。
318 8
|
2月前
|
机器学习/深度学习 算法 数据建模
【机器学习】类别不平衡数据的处理
【机器学习】类别不平衡数据的处理
|
4月前
|
缓存 开发者 测试技术
跨平台应用开发必备秘籍:运用 Uno Platform 打造高性能与优雅设计兼备的多平台应用,全面解析从代码共享到最佳实践的每一个细节
【8月更文挑战第31天】Uno Platform 是一种强大的工具,允许开发者使用 C# 和 XAML 构建跨平台应用。本文探讨了 Uno Platform 中实现跨平台应用的最佳实践,包括代码共享、平台特定功能、性能优化及测试等方面。通过共享代码、采用 MVVM 模式、使用条件编译指令以及优化性能,开发者可以高效构建高质量应用。Uno Platform 支持多种测试方法,确保应用在各平台上的稳定性和可靠性。这使得 Uno Platform 成为个人项目和企业应用的理想选择。
80 0
|
4月前
|
机器学习/深度学习 缓存 TensorFlow
TensorFlow 数据管道优化超重要!掌握这些关键技巧,大幅提升模型训练效率!
【8月更文挑战第31天】在机器学习领域,高效的数据处理对构建优秀模型至关重要。TensorFlow作为深度学习框架,其数据管道优化能显著提升模型训练效率。数据管道如同模型生命线,负责将原始数据转化为可理解形式。低效的数据管道会限制模型性能,即便模型架构先进。优化方法包括:合理利用数据加载与预处理功能,使用`tf.data.Dataset` API并行读取文件;使用`tf.image`进行图像数据增强;缓存数据避免重复读取,使用`cache`和`prefetch`方法提高效率。通过这些方法,可以大幅提升数据管道效率,加快模型训练速度。
57 0