小米新品首次开卖:4K屏售价不足
人工智能

推荐程序员给女友做的ML减肥神器(附源代码

  接下来我将要描述我和其他人的想法,以及我用来过滤数据噪音的代码,这种过滤方法对帮助我了解自己体重的正确趋势起到了至关重要的作用。

  我在github的存储区()附上了我的代码,Q&A部分以及延伸阅读的链接。

  基于此,我想通过伽里略的调查()来佐证自己的观点:进化的进程经过了20亿年的时间来塑造所有的真核生物、多细胞生物而达到最终的哺乳动物。克雷布斯(Krebs)周期、葡萄糖代谢、胰岛素峰值、肝脏糖原、肉碱、脂肪酶,这些生物物质对于你我都是一样的。我们可能由于基因和性状的差异会有所不同,例如有的更耐受胰岛素,但每个人最基本的代谢化学过程是基本相同的,这些化学过程驱动了脂肪的合成和分解。

  我曾是个很瘦的人,以下是我的DMV证件,从上面看我大约就143磅(约130斤)吧。

  不幸的是,自从搬到了美国,我就开始发福,体重在2015年达到顶峰,增肥了50(约45斤)多磅。

  由此我联想到了很多生活中的例子......我意识到自己需要好好思考一下,我决定忽略所谓 “专家”的建议,质疑被FDA(美国食物药物监管局)认证的“食物金字塔”,倾听自己身体的声音...我决定通过收集自身的数据,靠数据说话。

  在过去,我尝试了N种方法改变自己的饮食习惯。通过阅读Atkins的书,我发现摄入过量的碳水化合物是长胖的主要元凶,但是仅仅是不摄入碳水化合物并不能达到减肥的效果。

  我的自制力也比较差,自己超爱吃比萨和面包,我一般会减少自己的碳水化合物摄入量,轻几斤(例如5磅),然后中断减肥,又去摄入过量的碳水直到反弹。我最长的一次节食仅持续了几个月。

  我认为我之前的方法里缺失了某些东西,并决心找到它,我可以加强运动,例如跑一个迷你马拉松,但我并不喜欢。

  我意识到必须养成一种不仅仅是减少碳水化合物摄入并加强运动的生活方式,而且这种方式应该是可持续性并且是自己愿意长久坚持的,例如:

  我开始使用机器学习来帮助自己识别会影响我体重的因素。首先尝试了简单的方法:每天给自己称重,并记录新体重以及自己在过去24小时内的所有行为,包括饮食、锻炼、睡眠等。我将数据存储到如下的档案中(一个包含3列的CSV文件):

  最后一列包括是个word[:weight]项,任意长度。体重为数值变量,用高/低分位数表示。

  接下来我写了段代码 a将文件转换成 vowpal-wabbit训练集回归格式。在转换的训练集中标签项label(target feature)是在过去24小时中体重的改变量(delta),输入的特征是我在过去24小时做的引起体重改变的行为-也就是直接复制第三列的内容。

  在通过abs(delta)降序排列、平滑数据以及放大虚弱数据信号等操作后,我们让机器学习的误差收敛。数据如下所示:

  RelScore是正值(顶端)的生活方式是让你增重的,而RelScore是负值(底端)的方式能减重。

  声明:请不要过在意这些数据细节,使用这个特殊的数据集有一定的挑战性,因为:

  我的纵坐标刻度可能不准确,你可以看到每个间隔是0.2磅,这可能不是最理想的。使用0.1帮作为间隔可能更好;

  你可能注意到VW误差收敛图最小值接近-0.2,这是因为你对数据(过度拟合训练集)进行多次传递的原因;

  让你体重增减的项目通常会一起出现在同一条线上,所以它们会产生互相抵消的效果,这个问题可能需要自学习过程解决;

  因此,我尽可能地关注在靠近极值附近的变量上,并利用这些发现来引导我未来的研究、实验和行为。

  除了数据的噪音和不完备、体重数据不准确问题,此机器学习实验有4个发现是很明确的,那就是:

  这种“宅”的生活方式往往发生在我的周末:当不用工作是我就大睡一天,在家的饮食也会与上班时不同。

  我费了些时间思考为什么睡觉会减肥——主要是因为我们睡觉时不吃东西,我们往往会在不饿时胡吃海喝,但是睡觉时就不会,睡眠是我们一天中禁食时间最久的状态。

  当然,需要注意我对结果的解释可能不够准确和严谨科学,那需要不断的实验、检查、修改和重复。

  你可能会注意到在最顶端(日期 vs. 体重)的图上有一个显著的体重减少阶段。通过对坚持节食的深入理解,我意识到:延长空腹时间是极速减肥的最佳手段,我通过以下行为达到:

  第三是理解血糖指数Glycemic index和血糖负荷Glycemic Load,将自己的食物选择尽量集中在低血糖负荷的食物上。

  目前我有自信回到自己初到美国时的体重了,虽然我大约需要1-2年才能完全恢复过去20多年造成的不良身材,但需要强调的是瘦下来感觉真好啊!我在减肥期间的血液测试中,发现自己的的血脂也恢复到了平均值。

  通过分析数据和阅读,我发现需要从自身身体情况出发来制定减肥计划,而不是盲目听从。

  我们的身体是个神奇的经过几十亿年进化的有机体,造成我们体重上身的不是摄入脂肪量,而是储存脂肪量。

  有一种叫脂肪酶物质能够分解脂肪,如果提高脂肪酶的水平,我们的身体将更快地分解脂肪。当身体没有糖原时,它将通过转化脂肪来形成能量。

  ATP合成作用ATPsynthesis能够通过将脂肪转换碳水化合物提供能量,身体就是个能量转换器。在低碳/低脂的情况下,睡眠(空腹时间)将会很有裨益,它可以帮我们达到躺着也能瘦的功效。

  当我们进一步降低碳水化合物水平——切断碳水化合物时,我们将达到一个新的稳定状态——酮症,这种状态下,身体的能量完全来源于脂肪,我们将能够在减肥的道路上更近一尺。

  最艰难(特别是一开始)的是减少碳水化合物摄入。例如好吃的高碳食物(披萨、意大利面、面包等),还有高糖的加工食物,但这并不意味着不摄入碳水化合物,可以适时地犒赏自己一下(例如一周吃一次披萨),偶尔的放纵不会太影响减肥,但你得比减肥前少摄入。

  参考维基百科上对血糖指数Glycemic index和血糖负荷Glycemic Load的描述。避免摄入高血糖的食物,这会避免由于血糖的极速升高而加剧脂肪的形成。如果想喝橙汁就吃橙子。如果你必须在咖啡或茶中加糖的话,使用特别的增甜剂 Splenda(sucralose+dextrose) tablet或 a Stevia drop/tablet 而不是普通的糖。

  高脂肪:我减少牛奶摄入到原来的一半并在考虑食用(无糖)奶油,这些食物含更多脂肪和少量碳水化合物,并开始吃鳄梨、橄榄油、椰果、坚果等。当我摄入脂肪时饥饿感会下降,重要的是,我会避标有”低脂肪”或“脱脂”标签的食物。食品行业总是用糖来代替脂肪让食物更美味,却会带来更多热量。吃自然的东西是最好的。如何区分“好”和“坏”的脂肪,我采取的准则是:如果是自然的就是好的。最坏的反式脂肪是人工氢化的脂肪,行业用它来延长食物的保质期。饱和脂肪越少越好,单饱和脂肪(植物脂肪)的液体油是最好的,然后是多非饱和脂肪,最后是接近饱和的(但不是完全饱和)的来自动物的脂肪。我不吃人造黄油,但是天然的可以。然是无论我如何,我们的身体通过最机体代谢过程代谢掉饱和的脂肪。

  加一些运动。当然,多运动是好事,但是不是每个人都能坚持。我通常骑车工作,往返40分钟,7天有5天骑车。你也可以采取遛狗(快走)或尊巴Zuma。选择你喜欢的运动,再找个同伴,这样会容易坚持很多。

  延长空腹时间:这个指标对减肥最有效。尽量多睡少吃。当你的身体缺乏糖原时,为了合成ATP能量,身体会通过提升分解脂肪的酶来分解脂肪通过合成能量。我们的身体通过分解脂肪来达到减肥。

  吃鸡蛋:鸡蛋富含大量的脂肪和蛋白质。我曾经采访过一个114岁的日本女人并发现她保养的一个秘密就是每天吃鸡蛋。我最爱的食物是炒鸡蛋烤洋葱。

  多咀嚼。不要狼吞虎咽!当你饱了就停下来。从食物入口到你的大脑传递出饱腹信号需要20分钟的时间,所以不要因为快太吃而吃过多。