明天又到了一年一度的520,面对大街上,朋友圈里情侣们的各色秀恩爱,单身程序员又要受到一万点伤害。
难道我注定要要一辈子散发着单身狗的清香?
究竟怎么样才能遇到我未来的另一半呢?
所幸的是,在今天这个时代,我们拥有互联网和大数据,它们给很多事情提供了便利,我们可以与很多人接触到——甚至是那些在几分钟前你想都不敢想的人。
当然,这其中也包括恋爱交友。没错,大数据和算法(Algorithm)可以帮你更快地找到理想伴侣。
本文经授权转载自DataGirls(ID:DataGirls)
美国交友网站OKCupid的创始人之一克里斯蒂安·鲁德尔(Christian Rudder) 研究出了一种算法将两个人联系在一起,并基于一系列问题来检验他们的速配指数。 他们的答案越匹配,他们的速配指数越高。
以下是他在TED-ed上的分享内容:
【TED-ed】线上约会背后的数学原理(Inside OKCupid: The math of online dating - Christian Rudder)
本次分享主要讲解了数据收集、吸引力量化、算法设计等OKcupid在对线上用户进行速配时使用的数学原理。
如何得到你与他/她的速配指数
你可能会问表白小技巧计算公式, 我们如何能用数学来运算人与之间的吸引力呢?
首先,需要收集数据。
OKCupid通过让用户回答问题来收集数据。这些问题可以从像电影或歌曲品味,“你很邋遢吗”这样的小问题,或者“你想要什么样的孩子”一类的大问题。
很多人认为这些问题就是根据两个人喜好相互配对,人们有截然不同的回答时确实是这样。 当两个人在回答问题上有分歧时,最好的方法就是收集数据,将答案与理想伴侣的答案进行比较,并为这些数据添加更多维度(比如,重要程度)。
例如,在你的生活中,特定问题扮演什么角色?他们的重要程度是多少?为了计算速配指数,计算机必须找到一种方法来比较每个问题的答案,每个问题的理想合作伙伴的答案,以及与别人的答案的重要性水平。
这一方法是使用加权比例尺来衡量每一级别的重要性,如下图所示:
毫不相关: 0分;不那么重要:1分;有点重要:10分;非常重要:50分;必须如此:250分
那么,计算机怎么运算出来速配指数的?
假设你是A,而电脑想要和你配对的人是B。那么整个问题就会变成:
B的答案有多符合你的期待?
答案会是一个分数。分母是你认为所有问题的重要性的总分数。分子是B的答案的总分数。某个人的得分取决于问题的回应是否符合期待。分母的多少则取决于你对问题的重视程度。
对每个问题都这样做,最后分数叠加起来变成百分数。最后一个百分比就是你的满意度——根据你的答案来看,你和B在一起有多开心。然后,再来计算B的满意度。
OKCupid使用的算法是将人A的满意度乘以B的满意度再开根号。最后得出一个数学表达式,也就是你与B在一起的幸福指数。
速配指数背后的算法优化
问题来了, 为什么要用如此复杂算法呢?为什么不直接取平均数?
事实上,这叫做几何平均数。
表示一组数字的中心趋势或典型值的一种均值或平均值。(Rudder, 2013) 我们的数据本身取值范围非常广,属性差异很大。诸如,你的文学品味和你未来的计划,甚至“你是否相信上帝”。几何平均数在这种情况是最理想的解决方案。(最重要的是,即使是一个非常小的数据集,该算法仍然有用)。
边际误差 vs 可能速配度
再加上对边际误差的修正,也就是在调查结果中的随机抽样的统计学误差,使我们的结果更加精确。它总是显示你可能的最低速配度,因为他们希望A和B回答更多的问题(小兔情感挽回老师 微信:ke2004578),来增加可信度。
例如,如果A和B只回答了两个相同的问题,那么样本量的误差范围是50%。这意味着最高速配度是50%。下面我列出了一张表格,显示两个人必须回答多少问题,才能得到0.01的边际误差,或者具有99.99%的速配度。
速配指数高低有什么影响?
那么两个人的速配指数高低到底有什么用呢?
OkCupid的研究人员对此也很感兴趣。研究发现,速配指数实际上会影响发送消息的可能性,和把发送消息变成彼此聊天回话的概率。
例如,如果一个人被告知他与B只有30%的速配指数,那么有14.2%的机率他会发送消息,大约有10%的机会这条消息会转化为四条或多条消息的对话。然而,如果一个人被告知两人的速配指数是90%,那么发送消息的几率会上升到16.9%,单个消息变成四条或更多的对话的概率是17%。
发送信息的几率 VS 速配指数
形成对话的概率
尽管,人们对将算法引入到恋爱生活中还有很多担忧。比如说,算法过于依赖于用户的回答的诚实度和自我评估。也不是每个人都相信,仅仅通过数学公式就能帮他们找到理想伴侣。
但我相信用数据分析来进行交友的未来是非常广阔和令人兴奋的。如果你现在还没有恋人,非常希望在下一个情人节来临之前找到你的Mr.right or Ms.right,利用数据分析和数学算法应该是会是个不错的开始。
Roses are red
Violets are blue
I wrote this algorithm
Just to find you
分享我准备的python学习资料,给那些正在学习python的同学,或者准备学习python的同学,关注,转发,私信小编“01”免费获取!