编辑 | 都保杰
微信 | ai_xingqiu
网址 | 51aistar.com
参考资料:《Learning to find a Girlfriend at the University of Waterloo by Logistic Regression》
https://medium.com/@uw_data_scientist/learning-to-find-a-girlfriend-at-the-university-of-waterloo-by-logistic-regression-18a0d22da896
AI时代,机器学习技术已经被广泛应用,渗透到医疗、机器人、金融、客服、教育等各个领域,如此风风火火,但你听说过用机器学习帮自己在学校找对象这种神操作么?
最近滑铁卢大学一位叫Bai Li的留学生(李白?应是中国同胞)在medium上分享了如何用ML中的逻辑回归方法帮自己找女朋友的方法,让人不得不叹服,码农寻找爱情的方式果然别出心裁。
这个滑铁卢大学位于加拿大,并不是让拿破仑兵败的那个滑铁卢,滑铁卢大学是北美地区最优大学之一,其数学、计算机科学和工程学科教学水平居世界前列,其中优势专业计算机科学名列2017年usnews世界大学排行榜第18位。
不过,滑铁卢大学也是出了名的缺少社交活动和很难找到对象,不少计算机专业的男生都觉得,在这里找女票的几率是微乎其微的,找也不知道该怎么找,谈恋爱又不会,只会敲代码,大概毕业前都是光棍。
有些人觉得爱情这种东西是没法量化的,你只管“做你自己”就好了。不过,作为滑铁卢大学的一个数据科学家,我对此持不同意见。我就想了,既然是搞计算机的,干嘛不试试借助机器学习找女朋友呢?
方法论
于是心动不如行动,马上着手研究如何用机器学习技术找女票。这个研究的核心问题是:具备哪些属性,能在滑铁卢大学众多男生中脱颖而出找到女朋友?很多人觉得兜里有钱会更能吸引妹子,此外身高、有没有肌肉这些指标也会起作用。我们下面就试着找出哪些是最有预测力的属性,哪些假设没有数据支撑。
我首先想到了下面这些属性:
约会(目标变量):有女朋友,或者过去5年内曾有过至少维持了半年感情的女朋友。
国籍:留学生(因为我也是留学生)
专业:CS,SE和ECE专业
事业:在学术上很成功,找到了薪水优渥的实习工作
有趣性:能说会道,总能找到有趣的谈资
社交性:外向性格,总想认识新朋友
自信:看着比较自信
身高:身高比我高(> 175 cm)
眼镜:戴眼镜(我也戴)
健身:定期去健身房,或者运动
时尚:注重外在形象,穿着有品位
加拿大:过去5年内基本生活在加拿大
亚洲人:来自东亚地区(因为我也是)
看到这里你应该会发现,上面有些属性非常主观,比如怎么证明一个人很有趣?
在上面这些情况中,我按照是否符合标准会赋予1或0这两个值。所以,我们是在衡量人们的上述属性和能找到对象之间的关系。
所以,假如你是想看那种超硬核又严格统计的研究,那么后面的内容可能不是你的菜。
为了收集数据,我把自己能想到的每个人都列在表格里,在每个属性里会以0或1给他们打分,最终,数据集有N=70行,如果你过去两年待在滑大,和我认识,多半这个表格上有你。
分析
首先,我们将精确概率法(Fisher’s Exact Test)对目标约会变量和所有的说明变量进行分析,发现其中有3个变量影响最为显著:
健身:定期去健身房或运动的人有女朋友的概率会高出两倍以上(P值=0.02)
眼镜:不戴眼镜的人有女朋友的概率比戴眼镜的人会高出 70%(P值=0.08)
自信:有自信心的人有朋友的概率更高(P 值=0.09)
和我预期的一样,有肌肉有自信的小伙在这里更有吸引力,不过我对戴眼镜与否影响这么大感到很意外,好奇是不是因为戴眼镜一般会给人产生“书呆子”的印象。所以我又查了些资料,发现还真有这么一回事,有篇研究论文讲到大多数人认为不管男性还是女性,戴眼镜会降低自身吸引力。
有些变量对于能否成功约会可能比较有预测力,不过很难确定,因为样本较小:
留学生比加拿大本地学生的约会成功率要高;
亚洲人和其它人种相比约会机会更少;
纵览其它因素,虽然女生很少,计算机专业的男生似乎并不处于劣势;
剩下的变量(身高/事业/有趣性/社交性/时尚/居住地)这些和成功约会的关系不是很大。(感觉不太准啊~)
本次实验的完整结果:
接着我们检查各变量之间的关系,这可以帮我们识别出不正确的模型假设。红色表示正相关,蓝色表示负相关。我们只展示统计显著性
从图中看起来有相互关系。
在接着往下看之前,我得强调一下我的这些朋友不能代表滑铁卢大学的整体情况,我平时都是在课堂上或工作中认识的他们,虽然什么样的人都有,但都是从事计算机相关的事情,虽然来自不同专业,但大部分来自东亚地区,在加拿大生活。
用这些数据训练后的模型也会反应这些偏差,未来我也会扩大调查范围,收集更多数据。
用逻辑回归预测找女票
要是有个算法能够预测你有多大几率可以找到女票,岂不美哉?我们试试!
我训练了一个逻辑回归广义线性模型,根据我们前文列举的这些说明变量预测是否会有女票。借助R语言中的glmnet和caret包,我用弹性网络正则化训练了这个广义线性模型,然后用标准网格搜索法优化了超参数,在每次迭代中使用留一交叉验证法,并优化kappa系数。
最终模型的交叉验证ROC AUC分数为 0.673,也就是说模型在预测你找到女票的几率方面,比你凭感觉乱猜还是更靠谱些,当然了,生活中总会有些偶然的不确定因素,人生也会有惊喜嘛。
好了不说了,我去健身房了,还要努力摘掉眼镜!
如果你想了解最前沿的AI技术和场景应用
一网打尽AI世界的前瞻科技和深度报道
欢迎关注AI星球,并转发朋友圈为我们打Call~~
你们的支持是我们创造优质内容的不竭动力
领取专属 10元无门槛券
私享最新 技术干货