登录
首页精彩阅读从“脱单”这件小事看数据分析与机器学习(下)
从“脱单”这件小事看数据分析与机器学习(下)
2019-07-09
收藏
从“脱单”这件小事看数据分析与<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>(下)

Hello大家好,上回讲到数据清洗工作已经完成,在建立模型之前,我想看看这些数据的大致情况,专业一点的说法叫做数据探索,就是对已有数据集的一个了解。最简单的探索,看看最大值、最小值、方差、均值、中位数这些,当然,这主要是针对年龄这种数值型的数据,由于之前清洗数据的时候,已经对年龄的上下限做出来限制,所以最大值最小值都在预期之内,至于均值和中位数,可能很多人搞不太清这两者的区别。 大多数人对均值比较熟悉,上学的时候用的也比较多,下边我们可以举个例子来区分探索一下,比如说有5个姑娘,年龄分别是24岁,24岁,28岁,29岁,30岁,那么她们的平均年龄是27岁,而年龄的中位数很明显是28岁,两者并不相同,画一个分布图的话,能明显看出是一个右偏分布,如果扩展到数据量更大的数据集里,画出分布是右偏分布,就能得出这样一个结论,这样一批妹子中间,年纪稍大一点的妹子占多数。如果我比较喜欢御姐型的妹子,我可能已经在偷着乐了,年纪稍大的妹子多一点,御姐就可能会多一点啊,哈哈哈……当然,这只是假设还有概率,还不能这么开心的笑! (你的好友灵魂画手已上线)

从“脱单”这件小事看数据分析与<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>(下)
从“脱单”这件小事看数据分析与<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>(下)

好啦,清洗和简单的探索做完了,下面该建立一个模型来做进一步的分析,挑选出哪些妹子才是和我比较搭的。这里稍稍有点纠结,是做个分类呢还是做个聚类呢?虽然这两类模型从名字上看差不多,但是实际上差别可大着呢,分类模型是有监督的模型,提前已经知道了有几类,每个类有哪些特征。而聚类一般是无监督模型,提前并不知道有几类,需要根据每条数据的特征来寻找数据间的相似性,然后把相近的数据聚到一起,至于最后会形成几类,那就要看最开始把类的个数设定成几了,而且也不保证聚类的个数或者说最后的结果一定是对的。 比如说给妹子分类这件事,如果我事先设定要聚成两类,那妹子们就会被分成两类;如果我设定聚成四类,妹子们就会被分成四类;如果我再疯狂一点,把妹子们聚成了十八类,那妹子们就会被分成十八类;至于这么分合理不合理,实践之后才能知道了。

从“脱单”这件小事看数据分析与<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>(下)

我自己思考了一下,觉得做分类模型有点麻烦,要先提前确定妹子们的类型,我jio着,妹子肯定不能只是简单粗暴的给分成御姐型和萝莉型两个类型,至于妹子究竟有多少个类型,恐怕还没有人能给个准确答案;然后呢,还要提前找好特征,找特征也很麻烦,我真的不知道有哪些特征的妹子是属于哪个类型的,最后再按照符合的特征给妹子分类,所以我选了一个懒一点的办法,那就做个聚类好了,先简单把妹子聚成四类。当然这样也会有问题的,聚成四类后发现类别给聚少了咋办?那就把需要再聚类的那部分数据集再做一次聚类,很轻松嘛!

开始建模型

K-Means这个算法是聚类算法中最简单的算法没有之一,就用它了!这个算法的原理那是相当的简单,例如我要把妹子分成四类,那就先选四个中心,专业术语叫质心,然后计算数据集中每个数据点到每个质心的距离,这个计算量是很大的,但是不用担心,不用自己算,有计算机给算,它特别擅长这种计算,而且我这点数据量对计算机来说,都不够给他它预热的,瞬间就能出来结果。结果出来后,每个数据点都有了四个质心的距离数据,然后这些数据点会选择距离自己最近的那个质心作为自己的质心,这样就有了最原始的四个组,专业术语里也叫做簇!到这一步模型还没有结束,因为我们找的这些中心不一定在刚刚聚成的簇的真正中心位置,这时候就需要再计算一下每个簇真正的质心在哪里了,算出来之后,四个初始的质心就转移到了刚刚计算出来的质心位置,看到这里有没有一点熟悉的感觉,是的,下一步又要计算每个数据点到新质心的距离了,然后再重新聚类,再计算更新的质心,这样迭代下去,直到找到最优质心,聚类出最优的簇!

从“脱单”这件小事看数据分析与<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>(下)

这样解释这个原理,有点抽象,举例子解释一下,比如说我的数据里包含了100个妹子,既然我要聚成四类,就随机在100个妹子中挑选了四个人作为质心,然后开始计算剩下的96个妹子中每个妹子与那四个质心妹子的相似性,就是前边原理里提到的距离,96个妹子每个妹子都被计算了和四个质心妹子的距离,然后每个妹子和哪个质心妹子更相似,就把这个非质心妹子归到和她最相似的质心妹子那一簇里,最初始的四个簇就分出来了,这时候新的问题出现了,发现最初确定的质心妹子并不是这一簇里最有代表性的妹子,其他妹子的特征更能代表这一整个簇,通过计算,更能代表这一簇的妹子成了新一轮的质心,质心变动了,每个非质心妹子与新质心妹子的相似度就需要重新计算,计算出四个新质心后,开始计算这一轮剩下的96个妹子与新质心妹子的相似度,然后重新聚类,进入新一轮迭代!这样一个只有100条记录的数据集,一直迭代到质心不再发生变化不需要很长的时间,如果数据集很大的话,要迭代到质心不再发生变化,可能需要特别长的时间,这时候就需要算法的参数出场来进行控制。

从“脱单”这件小事看数据分析与<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>(下)

不管怎么说,我成功的把妹子们分成了四类,有一类妹子是我理想的类型,然而网站给出的匹配度有高有低,那么应该是我的信息不符合一些妹子的要求。现在是到哪一步了?开始给妹子发消息嘛?当然不是!人靠衣装马靠鞍,没见面之前得在依据事实的前提下包装一下自己,让自己的个人信息和妹子的要求相近那么一点点,要注意的是造假是不行的,那是欺骗,我这样的社会主义好青年是不会做这样的事情的。尽量满足妹子的要求,实在满足不了的也不能硬说自己满足啊。

第四步 进入沟通

Ok,个人信息美化好之后,就可以给妹子们发信息啦,我是很希望有很多妹子能给我回复,然而,理想是丰满的,现实是骨感的,虽然提前做了工作,回复我的妹子也没有那么多,中间偶尔还有托的消息,可见我前边数据清洗的时候并没有能成功的清理出去所有的虚假信息。这种信息只能是由我人肉筛选了,还好这类信息不多。

终于,我发出的消息有了回音,新的问题又出现了,作为一个只有工作没有生活的技术宅,我不知道能跟妹子聊点啥,尴尬!幸好不是面对面的聊,所以妹子那边抛出一个话题,比如说什么微博热搜知乎热搜头条抖音之类的,我都要一边去找这些热搜一边和妹子聊天,感觉有点心累!然而,能难倒数据分析师的问题还真的不多,我直接写了几个爬虫,每天爬一遍各大热搜,和妹子聊天之前做好功课,至少不被动,有话题可以和妹子聊,感觉好了很多。

当然并不是所有妹子都聊热搜,还有一些妹子聊人生聊工作聊价值观,总之,这段时间是我本职工作之外各种知识急速扩展的阶段,感觉自己又到了高考前的人生知识巅峰阶段,上知天文下知地理中间还知各种政治新闻娱乐八卦,如果不做数据分析师,去做专业陪聊都毫无压力,不管对方想聊啥,瞬间调出资料接住对方抛过来的梗。即使如此,也不是所有给我回复的妹子都能一直聊下去,有些价值观是非观之类的问题,还是要坚持自我的,聊不来也没办法,强行迎合别人最后也很难有尽如人意的结果。

从“脱单”这件小事看数据分析与<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>(下)

折腾了这么久,终于到了离开计算机去见面约会的阶段了,已经记不起来自己有多久没有约会过的人,心情既兴奋又紧张,还有一点点的缺乏信心(好吧,我承认,其实心里老没底了,方的不行)。不过,还是那句话,没有什么是我不能分析的,这不过是从对群体的分析转到了对个体分析的阶段,没什么特殊嘛!给自己打气完毕,开始约会前的准备工作:根据线上聊天时妹子表现出的喜好,选一个她一直想去又因为各种原因而没有去成的餐厅,带上一个她可能会喜欢但是又不是很贵重的小礼物;准备一些她可能会感兴趣的话题,避免到时候因为紧张不知道说点什么,尬聊太消耗感情了!然后还有就是我自己要好好收拾一下,去找村头的Tony老师理一个精神的发型,准备一套清爽整洁不做作的衣服。提前几分钟到约定好的餐厅坐等!

我准备了这么多,整个过程也还算顺利没有什么尴尬的事情发生,不过可能我的真人版和妹子的真人版都有点不太符合双方的预期,约会后联系也就终止了!但是一次的失败对我来说不算什么,想想我工作中算法模型跑不成功,调参调到怀疑人生的时候都没有轻言放弃,这么一点点挫折算什么,继续开始下一个,继续迭代!

每次迭代都能学习到经验教训,经过一遍一遍的约会然后回去复盘,终于我找到了一个可以确定关系的妹子,和家里打电话的时候得到了母上大人的肯定,我心甚慰啊!而且,妹子和我是同行,都是数据分析师,只不过行业不一样。后来关系稳定后的一次闲聊,我才知道,女朋友也是因为和我类似的原因,用数据分析的方法去分析各种交友类网站的数据,跑个算法来找目标,好吧,原来我也是别人数据集中的一个样本来着!幸运的是,我们正好在彼此的数据集中,经过层层筛选,成为了对方那个对的人!从此以后,家不再只是租来的一间空屋子,有灯光,有温暖,有个我喜欢的人和我一起讨论数据分析讨论各种算法模型!

从“脱单”这件小事看数据分析与<a href='/map/jiqixuexi/' style='color:#000;font-size:inherit;'>机器学习</a>(下)

(完结 本故事纯属虚构,如有雷同,纯属巧合)

数据分析咨询请扫描二维码

客服在线
立即咨询