我是怎么用机器学习技术找到女票的
机器学习在我们生活中的用处有多大,就不用我们多说了,大到医疗诊断,小到手机应用,机器学习都应用的风风火火。但是用机器学习帮自己在学校找对象,你听说过吗?
最近滑铁卢大学一位叫 Bai Li 的留学生(李白?应是中国同胞)在 medium 上分享了如何用 ML 中的逻辑回归方法帮自己找女票的神操作。像这么实用的技术,我们必须观摩学习一个。
这里插一嘴,以前老有人搞错滑铁卢大学,这里的滑铁卢在加拿大,不是比利时那个让拿破仑最后真的拿了破轮的滑铁卢。滑铁卢大学是加拿大一所著名高校,是北美地区最优大学之一,其数学、计算机科学和工程学科教学水平居世界前列,其中优势专业计算机科学名列 2017 年 usnews 世界大学排行榜第 18 位。
好了废话不说,我们观看少年的表演:
滑铁卢大学是出了名的缺少社交活动和很难找到对象。和我(原作者Bai Li——译者注)一样,滑大的很多计算机专业男生都觉得,找女票是不可能找到的,大概毕业前都不会找到的。找也不知道该怎么找,谈恋爱又不会,就只能敲敲代码才能维持得了生活这样子。
有些人觉得爱情这种东西是没法量化的,你只管“做你自己”就好了。不过,作为滑铁卢大学的一个数据科学家,我对此持不同意见。我就想了,既然是搞计算机的,干嘛不试试借助机器学习找女朋友呢?
方法论
心动不如行动,马上着手研究如何用机器学习技术找女票。
这个研究的核心问题是:具备哪些属性,能在滑铁卢大学众多男生中脱颖而出找到女朋友?
很多人觉得兜里有钱会更能吸引妹子,此外身高、有没有肌肉这些指标也会起作用。
我们下面就试着找出哪些是最有预测力的属性,哪些假设没有数据支撑。
我首先想到了下面这些属性:
约会(目标变量):有女朋友,或者过去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)
和我预期的一样,有肌肉有自信的小伙更有吸引力。不过我对戴眼镜与否影响这么大感到很意外,好奇是不是因为戴眼镜一般会给人产生“书呆子”的印象。所以我又查了些资料,发现还真有这么一回事,有篇研究论文讲到大多数人认为不管男性还是女性,戴眼镜会降低自身吸引力。
有些变量对于能否成功约会可能比较有预测力,不过很难确定,因为样本较小:
留学生比加拿大本地学生的约会成功率要高
亚洲人和其它人种相比约会机会更少
纵览其它因素,虽然女生很少,计算机专业的男生似乎并不处于劣势
剩下的变量(身高/事业/有趣性/社交性/时尚/居住地)这些和成功约会的关系不是很大。不好意思,哪怕你在 Facebook 上班,该没女票还是没有。
本次实验的完整结果:
接着我们检查各变量之间的关系,这可以帮我们识别出不正确的模型假设。红色表示正相关,蓝色表示负相关。我们只展示统计显著性 <0.1 的相关性,因此大部分变量之间的关系为空白。
从图中看起来{有女朋友,看起来自信,去健身房,不戴眼镜}有相互关系。
在接着往下看之前,我得强调一下我的这些朋友不能代表滑铁卢大学的整体情况。我平时都是在课堂上或工作中认识的他们(虽然什么样的人都有,但都是从事计算机相关的事情),要么是熟人(虽然来自不同专业,但大部分来自东亚地区,在加拿大生活)。
用这些数据训练后的模型也会反应这些偏差,未来我也会扩大调查范围,收集更多数据。
用逻辑回归预测找女票
要是有个算法能够预测你有多大几率可以找到女票,岂不美哉?我们试试!
我训练了一个逻辑回归广义线性模型,根据我们前文列举的这些说明变量预测是否会有女票。借助 R 语言中的 glmnet 和 caret 包,我用弹性网络正则化训练了这个广义线性模型。然后用标准网格搜索法优化了超参数,在每次迭代中使用留一交叉验证法,并优化 kappa 系数。
最终模型的交叉验证 ROC AUC 分数为 0.673,也就是说模型在预测你找到女票的几率方面,比你凭感觉乱猜还是更靠谱些。当然了,生活中总会有些偶然的不确定因素,人生也会有惊喜嘛。
好了不说了,我去健身房了,还要努力摘掉眼镜!
后话:小哥在原文中将自己的模型分享了出来(很可能已经找到另一半所以也不藏私了),用它就能测试自己在滑铁卢大学找到女票的概率。奈何打开链接后,目前已无法获取模型。如果后期能正常访问,我们会把这款能预测你“姻缘”的模型分享给大家。当然了,如果你能自己创建一款这样可以预测桃花运概率的AI“半仙”,那是坠吼滴!
文章分享自网络,版权归原作者所有,转载仅供学习使用,不用于任何商业用途,如有侵权请留言联系删除,感谢合作。
参考资料: 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
数据与算法之美
用数据解决不可能
我是怎么用机器学习技术找到女票的相关推荐
- 我是如何用机器学习技术帮助 HR 省时间的
引言 假设简历库中有 10000 份名为 "软件工程师" 的简历. 一位 HR 在搜索 "Android 工程师" 时仅关注名称为 "Android ...
- 我是这样入门“机器学习”的
我是这样入门"机器学习"的 叶锦鲤发表于悦思悦读订阅 原文链接:https://cloud.tencent.com/developer/article/1357704 在这篇文章中 ...
- 独家|一文解读合成数据在机器学习技术下的表现
作者:Eric Le Fort 翻译:蒋雨畅 校对:卢苗苗 本文约3200字,建议阅读12分钟. 本文将通过介绍两个分布模型,并运用它们到合成数据过程中,来分析合成数据在不同机器学习技术下的表现. 想 ...
- 【清华大学王东老师】现代机器学习技术导论.pdf
今天向大家推荐一本书 清华大学王东老师的<现代机器学习技术导论> 本书的主体内容是基于该研讨班形成的总结性资料,从2016年8月开始整理,历经数次大规模修正,直到2019年1月定稿.全书共 ...
- 【待继续研究】解析机器学习技术在反欺诈领域的应用
反欺诈简单说,就是:根据借款人提供的信息,查找多方面资料,进行不同属性的比对,从而发现"羊群中的狼".这种工作复杂而枯燥,为了识别团伙欺诈,往往需要收集.整理.分析各种维度的数据, ...
- 分享:我是怎么在github上找到优秀的仓库的?
大家可以注意到,我经常向大家推荐优秀的github仓库,可能大家有疑问:怎么样找到优秀的github仓库呢?本文分享下我是怎么在github上找到优秀的仓库的? 通常情况下,在github上查找优秀的 ...
- python数据挖掘与机器学习实战_Python数据挖掘与机器学习技术入门实战(1)
什么是数据挖掘?数据挖掘指的是对现有的一些数据进行相应的处理和分析,最终得到数据与数据之间深层次关系的一种技术.例如在对超市货品进行摆放时,牛奶到底是和面包摆放在一起销量更高,还是和其他商品摆在一起销 ...
- Python数据挖掘与机器学习技术入门实战
摘要: 什么是数据挖掘?什么是机器学习?又如何进行Python数据预处理?本文将带领大家一同了解数据挖掘和机器学习技术,通过淘宝商品案例进行数据预处理实战,通过鸢尾花案例介绍各种分类算法. 课程主讲简 ...
- 机器学习ai选股_机器学习技术能够有效用于选股吗?(下)
未经授权,严禁转载 前言 在本篇论文的前半部分,作者提供了一些关于机器学习的基本概念,并指出机器学习在处理金融数据时很容易遭受过拟合的问题.作者对此提出了几种解决方法,包括结合不同的算法和信号窗口.此 ...
最新文章
- 在线作图丨如何绘制精美的3D饼图
- C# 之浅拷贝与深拷贝问题拙见(一)
- 第十三节:易学又实用的新特性:for...of
- pytorch18种损失函数全详解
- iOS-使用添加的花样字体
- 我如何判断漏洞奖励计划是否值得参加?如何获得最大收益?
- post postman 传递数组对象_okhttp传递数组参数
- Flink时间属性和窗口
- linux管道学习资料
- uploadify 3.1 /3.2 在Firefox,Chrome 浏览器下,进入页面请求两次问题解决办法。
- 系统评测指标:准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F-Score
- StackOverFlow处女问
- 两个tplink路由器有线桥接_如何装2个tplink无线路由器_两个tplink路由器怎么设置?-192路由网...
- python绘制椭圆双曲线_奇妙一招:如何用“尺规作图”作出椭圆双曲线抛物线?...
- css 平行四边形 梯形 组合_CSS实现平行四边形布局
- 第一性原理计算软件攻略-利用VESTA绘制差分电荷密度图解
- ipad批量删除图片
- 【推荐系统】今日头条推荐算法原理全文详解
- MAME模拟器debug帮助文档汉化一(介绍)
- 微信组件:微信转账查询
热门文章
- 【学习笔记】Docker - 01. Docker是啥
- asp.net core 发布到 docker 容器时文件体积过大及服务端口的配置疑问
- 跟着老桂学ASP.NET Core 2.0
- 高效实用的.NET开源项目
- 不可思议黑科技,Xamarin移动开发新时代
- 微软.NET年芳15:我在Azure上搭建Photon服务器(C#.NET)
- Essential MSBuild: .NET 工具生成引擎概述
- matlab 12位 显示不出来,求助大神,为何不同机器运行MATLAB结果不同
- 遍历文件夹还原数据库SQL语句
- 你不知道的无人机知识(建议收藏)