热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

有个小哥哥用机器学习帮自己脱单,结果。。。

滑铁卢大学一位叫BaiLi的华裔小哥哥,在Medium上分享了自己「如何用ML中的逻辑回归方法帮自己找脱单」的神操作。像这么实用的技术,必须学习一个。滑铁卢大学是加拿大一所著名高校

滑铁卢大学一位叫 Bai Li 的华裔小哥哥,在 Medium 上分享了自己「如何用 ML 中的逻辑回归方法帮自己找脱单」的神操作。

像这么实用的技术,必须学习一个。

滑铁卢大学是加拿大一所著名高校,是加拿大最好的大学之一,尤其数学、计算机科学等工程学科教学水平居世界前列,其中优势专业计算机科学名列 2017 年 usnews 世界大学排行榜第 18 位。

不过,滑铁卢大学和所有的理工科学校一样,除了男女比例极不协调外,缺少社交活动,很难找到对象。

《有个小哥哥用机器学习帮自己脱单,结果。。。》

有些人觉得爱情这种东西是没法量化的,你只管「做你自己,顺其自然」就好了。

不过作为滑铁卢大学的一个数据科学家,小哥哥对此持不同意见。他觉得自己既然是搞计算机的,干嘛不试试借助机器学习来帮助自己找女朋友呢?

撩妹方法论:武装自己

心动不如行动,马上着手研究如何用机器学习技术找女票。

这个研究的核心问题是:具备哪些属性才能在众多男生中脱颖而出,受到妹纸们的青睐?

小哥哥就试着列出了男生上的特征属性,想找出哪些假设是可以有数据支撑。

《有个小哥哥用机器学习帮自己脱单,结果。。。》

在上面这些情况中,我按照是否符合标准会赋予 1 或 0 这两个值。所以,我们是在衡量人们的上述属性和能找到对象之间的关系。

上面有些属性非常主观,比如怎么证明一个人很有趣?所以,假如你是想看那种超硬核又严格统计的研究,那么后面的内容可能不是你的菜。

为了收集数据,我把自己能想到的每个人都列在表格里,在每个属性里会以 0 或 1 给他们打分。最终,数据集有 N=70 行。如果你过去两年和我同校,和我认识,多半这个表格上有你。

认真分析落单原因

首先,我们将精确概率法(Fisher’s Exact Test)对目标约会变量和所有的说明变量进行分析,发现其中有 3 个变量影响最为显著:

  • 健身:定期去健身房或运动的人有女朋友的概率会高出两倍以上(P值=0.02)
  • 眼镜:不戴眼镜的人有女朋友的概率比戴眼镜的人会高出 70%(P值=0.08)
  • 自信:有自信心的人有朋友的概率更高(P 值=0.09)

小哥哥对戴眼镜与否影响这么大感到很意外,好奇是不是因为戴眼镜一般会给人产生「书呆子」的印象。

《有个小哥哥用机器学习帮自己脱单,结果。。。》

所以小哥哥又查了些资料,发现还真有这么一回事,有篇研究论文讲到大多数人认为不管男性还是女性,戴眼镜会降低自身吸引力。

有些变量对于能否成功约会可能比较有预测力,不过很难确定,因为样本较小:

  • 留学生比加拿大本地学生的约会成功率要高
  • 亚洲人和其它人种相比约会机会更少

纵览其它因素,虽然女生很少,计算机专业的男生似乎并不处于劣势;剩下的变量(身高/事业/有趣性/社交性/时尚/居住地)这些和成功约会的关系不是很大,毕竟约会只是确认关系的第一步,很少有年轻人想得太远太复杂。

本次实验的完整结果:
《有个小哥哥用机器学习帮自己脱单,结果。。。》

接着我们检查各变量之间的关系,这可以帮我们识别出不正确的模型假设。

《有个小哥哥用机器学习帮自己脱单,结果。。。》

红色表示正相关,蓝色表示负相关,只展示统计显著性 <0.1 的相关性,因此大部分变量之间的关系为空白。

从图中看起来 { 有女朋友,看起来自信,去健身房,不戴眼镜 } 有相互关系。用这些数据训练后的模型也会反应这些偏差,未来我也会扩大调查范围,收集更多数据。

用逻辑回归预测找女票

如果有个算法能够预测你有多大几率可以找到女票,岂不美哉?

小哥哥训练了一个逻辑回归广义线性模型,根据我们前文列举的这些说明变量预测是否会有女票。

借助 R 语言中的 glmnet 和 caret 包,我用弹性网络正则化训练了这个广义线性模型。然后用标准网格搜索法优化了超参数,在每次迭代中使用留一交叉验证法,并优化 kappa 系数。

最终结论

《有个小哥哥用机器学习帮自己脱单,结果。。。》

最终模型的交叉验证 ROC AUC 分数为 0.673,也就是说模型在预测你找到女票的几率方面,比你凭感觉乱猜还是更靠谱些。

当然了,生活中总会有些偶然的不确定因素,人生也会有惊喜嘛。好了不说了,小哥哥要去健身房了,还要努力摘掉眼镜!

《有个小哥哥用机器学习帮自己脱单,结果。。。》
(献上 Bai Li 小哥哥的真人近照)

彩蛋:小哥哥现在怎么样了?

原文作者 Bai Li 小哥哥完成这项研究时,是在今年四月,他将文章发布在 Medium 之后也大受好评,小哥哥的项目可以通过他的 GitHub 了解更多。

《有个小哥哥用机器学习帮自己脱单,结果。。。》

关注公众号后回复「单身狗」,即可获得小哥哥的 GitHub 地址

从文章发布到今天已经快四个月咯,小哥哥怎么样了呢,我们也是通过一个不存在的网站,也称脸书,联系到了小哥哥本哥,自己体会一下:


推荐阅读
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 最近团队在部署DLP,作为一个技术人员对于黑盒看不到的地方还是充满了好奇心。多次咨询乙方人员DLP的算法原理是什么,他们都以商业秘密为由避而不谈,不得已只能自己查资料学习,于是有了下面的浅见。身为甲方,虽然不需要开发DLP产品,但是也有必要弄明白DLP基本的原理。俗话说工欲善其事必先利其器,只有在懂这个工具的原理之后才能更加灵活地使用这个工具,即使出现意外情况也能快速排错,越接近底层,越接近真相。根据DLP的实际用途,本文将DLP检测分为2部分,泄露关键字检测和近似重复文档检测。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 探讨一个显示数字的故障计算器,它支持两种操作:将当前数字乘以2或减去1。本文将详细介绍如何用最少的操作次数将初始值X转换为目标值Y。 ... [详细]
  • 深入理解 H5C3 和 JavaScript 核心问题
    本文详细探讨了 H5C3 和 JavaScript 中的一些核心编程问题,通过实例解析和代码示例,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • 探索电路与系统的起源与发展
    本文回顾了电路与系统的发展历程,从电的早期发现到现代电子器件的应用。文章不仅涵盖了基础理论和关键发明,还探讨了这一学科对计算机、人工智能及物联网等领域的深远影响。 ... [详细]
  • 解决Python中 'NoneType' 对象无属性 'find_all' 错误
    本文详细探讨了在Python编程中遇到的常见错误——'NoneType'对象没有属性'find_all',并深入分析其原因及解决方案。通过理解find_all函数的工作原理和常见用法,帮助读者避免类似问题。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
author-avatar
吾爱九-九九
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有