加入收藏 | 设为首页 | 会员中心 | 我要投稿 广州站长网 (https://www.020zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

只需五步!哈佛学霸教你用Python分析相亲网站数据,在两万异性中找到真爱

发布时间:2019-10-13 03:02:14 所属栏目:优化 来源:Wired 编译:啤酒泡泡、张大笔茹、张睿毅、牛婉杨 想脱单
导读:副标题#e# 大数据文摘出品 来源:Wired 编译:啤酒泡泡、张大笔茹、张睿毅、牛婉杨 想脱单?那还不容易! 如果身在美国,就像其余四千万单身男人一样,注册一下Match.com, J-Date和OkCupid等相亲网站,坐等真爱上门不就可以了。 但是相信大多数人和McKinlay一
副标题[/!--empirenews.page--]

只需五步!哈佛学霸教你用Python分析相亲网站数据,在两万异性中找到真爱

大数据文摘出品

来源:Wired

编译:啤酒泡泡、张大笔茹、张睿毅、牛婉杨

想脱单?那还不容易!

如果身在美国,就像其余四千万单身男人一样,注册一下Match.com, J-Date和OkCupid等相亲网站,坐等真爱上门不就可以了。

但是相信大多数人和McKinlay一样,尽管向OkCupid算法推荐匹配的女性发送了许多暧昧私信,但绝大多数都石沉大海了。

转折出现在2012年6月的一个早上,这个只进行过6次线下约会的男人正在电脑上编译机器代码,另一个窗口显示着他孤零零的交友头像,他突然顿悟:他一直在使用错误的方法寻找爱情。

为了不辜负自己在应用数学领域取得的成绩,他决定,在OkCupid上爬取每一条相关信息,利用关键的K-Modes的改良贝尔实验室算法找出数据规律,缩小范围,然后一击命中。

换句话说,这是一次数学家独创的完美约会经验贴,还不快来看看!

第一步:分析失败原因,知己知彼

OkCupid是哈佛大学的数学系学生于2004年创立的约会网站,最初这个网站吸引人们注意力的是它基于计算方法的配对模式。会员会回答很多多项选择问题,这些问题覆盖面很广,包括政治、宗教、亲情、性、以及智能手机等。

只需五步!哈佛学霸教你用Python分析相亲网站数据,在两万异性中找到真爱

数学家Chris McKinlay

通常,系统会从上千道问题的题库里选出350道问题—— “以下哪种情形最有可能让你去看电影?”或是“宗教/上帝在你的生活中有多重要?”

对于每一道问题,用户会选择一个答案,以说明自己伴侣的哪一个回答是他可以接受的,并通过给问题评分来表明问题对自己的重要性(5分制,从无关紧要到必须回答)。OkCupid的匹配引擎会利用这些数据来计算男女之间的合适程度。越接近100%,所谓数学意义上的灵魂伴侣就越匹配。

McKinlay从数学上分析了自己一直以来的失败原因。

OkCupid的算法只会使用双方都愿意回答的问题去计算,而McKinlay选择的问题有些随机,并不主流。当他查看与自己匹配的人时,匹配度超过90%的女人不到100个。要知道,洛杉矶有两百万女性(大约八万女性在使用OkCupid)。如果把匹配度比作可见度,那McKinlay可以说就是个看不见的幽灵。

他意识到他应该去提高匹配的人数。如果McKinlay通过统计取样确定哪些问题是他喜欢类型的女人愿意回答的,那么他便可以诚实地回答这些问题而忽略其他问题,以此来创建一个全新的用户。利用这个办法,他可以匹配到在洛杉矶的每一个可能与他配对的女人,而不会匹配到不合适的人。

只需五步!哈佛学霸教你用Python分析相亲网站数据,在两万异性中找到真爱

第二步:借助Python,求助好友,疯狂收集数据

Chris McKinlay利用Python脚本浏览了上百道OkCupid的问卷题目,然后把女性用户分为七类,每一类都会贴上独特的标签,例如“多才多艺的”和“细心体贴的”等等。

即便作为一个数学家,McKinlay也是个不同寻常的人。他小时候在波士顿郊区长大,2001年他从Middlebury学院毕业并获得汉语言学位。同年8月份,他在纽约世贸中心北塔91层的一家公司里找了一份兼职工作,工作内容是将中文翻译成英文。五周后的一天,世贸大厦倒塌了。(那天,下午两点前McKinlay都没来公司。当第一架飞机于早上8点46分撞上大厦的时候,他正在睡觉。)

“自从那件事后,我问自己,我究竟想做什么”他说。他的一个在哥伦比亚大学的朋友招聘他进入了一个由麻省理工职业21点团队衍生出的一个团队,这之后的几年里,他便往返于纽约和拉斯维加斯,他的工作是数牌,一年能挣六万美金。

这段经历点燃了他对应用数学的兴趣,最终促使他在这个领域取得了硕士和博士学位。“他们能够在很多不同的情景下使用数学知识,”他说,“他们会见到一些新的游戏,比如‘三张牌的牌九扑克’,然后回家写点代码,接着就能找到策略去打败它。”

现在,他想用同样的方式去寻找爱情。首先,他需要数据。就在他用旁边的窗口进行论文写作的时候,他建了12个假的OkCupid账户并写好了Python脚本去管理这些账户。这个脚本会搜索他的目标群体(25到45岁的异性恋或双性恋的女人),访问她们的主页,然后爬取她们账户上每一条有用的信息:种族、身高、是否吸烟、星座—— “这些我全都要”他说。

只需五步!哈佛学霸教你用Python分析相亲网站数据,在两万异性中找到真爱

为了找到心仪的另一半,他还做了一些额外调查。OkCupid可以让用户看到其他人的回答,但只能看到那些他们自己已经回答过的问题。 于是McKinlay设置了自己的机器人程序,以简单地随机回答每个问题,他并没有使用虚拟的个人资料吸引任何女性,因此答案并不重要,主要他要将这些女性的答案收集到了数据库中。

McKinlay满意地看着他程序一路狂奔。 然后,在收集了大约一千个档案后,他遇到了第一个障碍。OkCupid有一个短平快的系统来防止这种数据收集,他的程序一个接一个地被禁。

因此他必须把自己的程序训练的更像真人一些。

他求助他的神经科学家朋友Sam Torrisi,最近刚教过McKinlay音乐理论以换取高级数学课程。Torrisi也注册了OkCupid,他同意在他的计算机上安装间谍软件来监控该网站的使用。根据手中的数据,McKinlay通过编程模拟Torrisi的点击率和打字速度。他从家里带来了第二台电脑并将其插入数学系的宽带线路,以便可以24小时不间断运行。

三周后,他已经收集了来自全国各地20000名女性的600万个问题和答案。

第三步:将20000名女性分为7类,找出最适合自己的

按照McKinlay的工作计划,他需要从调查数据中找到一个规律,即需要根据相似性粗略地对女性进行分组。这个问题在他编写一个名为K-Modes的改良贝尔实验室算法时取得了进展。

K-Modes算法1998年首次用于分析患病的大豆作物。

他通过算法发现了一个自然的分割点,根据问题和答案,20,000名女性被分为成七个统计学组。 “我太高兴了,”他说,“那是六月份令我最兴奋的事情了。”

(编辑:广州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读