一件发生在大约两年前的故事,在通过聚类算法分析了洛杉矶2万女性的600万个OkCupid(可以理解为美国的世纪家园)问题的答案以后,35岁的数学家Chris McKinlay开始用程序以每天1000个人的速度给与他高匹配的女性组发送个人简介,最后在约会到第88次后,向28岁的Tien Wang求婚,找到了真爱。
今天火箭君就来讲述一下,Chris效率姻缘的来龙去脉,顺便安利一本书给大家看:
缘起OkCupid
OkCupid是在2004年由一个哈弗大学数学系毕业生创立的。每一个会员都会被要求回答一系列涉及政治、宗教、家庭、手机、感情的问题。平均每个会员都会回答从上千个问题中挑选出的350个问题。随后OkCupid网站通过算法把双方匹配起来,推荐给用户。
Chris发现OkCupid这网站不靠谱啊,他只会被那些恰巧和他回答了同一些问题的女性匹配,这导致他能找到的女性匹配率非常低。为了解决这个问题,他决定自己弄一个算法搞清楚回答了什么问题的姑娘是他钟意的类型,同时剔除那些不诚实的回答。这样他就能把把网站上即使回答了不同问题的姑娘,也囊括进来。
下面这个人就是本次故事的主角:Chris McKinlay
第一步:搞数据
Chris注册了12个假账号,然后用Python脚本去访问他可能感兴趣的25-45岁异性和双性恋女性(好的大哥,你赢了= =+)的页面,然后存下这些人的各种信息(身高、抽烟习惯、兴趣、星座什么的所有的乱七八糟的东西)
接着就是要知道这些人的问题答案了。OkCupid也不是傻子,防抓取机制导致他的机器人脚本没办法大量获取目标姑娘的问题答案。为此,Chris又训练了一个脚本机器人,模拟真人试用网站的习惯,并抓取信息。一周以后,他的机器人抓取到了2万个姑娘回答的600万个问题。
第二步:找规律
Chris用了一个叫K-Modes的算法成功发现:2万个姑娘可以被归为统计学上显著不同的7类。然后他又抓取了5000个姑娘的信息,去证明自己找到的规律是真的…… 下面这图就是他的聚类结果
第三步:找到合适自己的
Chris逐个查看了这7个类型,有的年纪过大,有的太信基督。最后他关注了两种合适自己的类型:25岁左右,从事艺术和音乐工作的独立创作者(A组)和年龄稍大些,从事设计、编辑工作的人(B组)。他决定同时出击!
第四步:出击!
为了获得建立在真实基础上的姻缘,Chris诚实回答了自己的每一个问题。然后,这哥们又写了一个算法来决定回答的每个问题的重要性——他为每一组女性各创造了一份自己的档案:第一个档案的照片是他在弹奏吉他,第二个的照片是他在攀岩。
火箭君去人肉了一下,找到了疑似的那张照片,大家随便感受下..
此时,他发现,他能够在网站上找到的女性,已经有大量99%匹配的女性了,超过90%匹配的更是数不胜数。因为在OkCupid上,你需要访问别人的页面,别人会看到你访问过他们,所以Chris又只好写了个程序,每天访问1000个目标姑娘的首页,不断重复,姑娘们就会发现:“哇!有个超配自己的帅哥访问了我的主页!”
结果就是,他的OkCupid主页每天被他的目标女性访问400次,私信也开始不断飞来(差不多一天20个人私信他,表示对他有兴趣)~
第五步:线下约会
数学工作已经完成了,下面Chris要做的就是约会了。这哥们随即在将近2个月的时间里,进行了87次约会,其中和大多数人的约会都只进行了一次,他只能和极少部分的人进行两次甚至三次约会。
成功!!
最后当第88次约会时,与他91%匹配的Christine Tien Wang出现时,他们双双关闭了OkCupid账户。最后Chris在Skype聊天时拿出钻戒向Tien Wang求婚,Tien Wang同意了。
故事说完了~Chris在科学的分析之后,获得了仅仅八十八分之一的约会成功率,从上百万陌生人里找到了老婆……
如果你昨天被虐惨了想知道怎么做:
Chris出了一本书《Optimal Cupid: Mastering the Hidden Logic of OkCupid》,安利一下,你可以点击原文直接去亚马逊买~
如果你想鸡汤一点:那么这个故事告诉我们……
▼
▼
▼
▼
▼
▼
▼
▼