分析 | Python抓取婚恋网用户数据,原来这才是年轻人的择偶观

前言

刚好在看决策树这一章,书里面的理论和例子让我觉得这个理论和选择对象简直不能再贴切。看完长相看学历,看完学历看收入。

最近在看《机器学习实战》的时候萌生了一个想法。

自己去网上爬一些数据按照书上的方法处理一下,不仅可以加深自己对书本的理解,顺便还可以拉拉人气。

刚好在看决策树这一章,书里面的理论和例子让我觉得这个理论和选择对象简直不能再贴切。

看完长相看学历,看完学历看收入。

如果可以从婚恋网站上爬取女性的数据信息,手动给她们打标签,并根据这些数据构建决策树,不就可以找出自己的择偶模式了吗!

下面就详细的阐释一下。

1

数据爬取

之前在世纪佳缘上爬取过类似的数据,总体的感觉是上面的用户数据要么基本不填要么一看就很假。

周围的一些老司机建议可以在花田网上看下,数据质量确实高很多,唯一的缺点就是上面的数据不给爬,搜索用户的API需要登录,而且只显示三十多个用户的信息。

刚好我需要的数据也很少,就把搜索条件划分的很细,每次取到的数据很小,但最终汇集的数量还是相当可观的,最终获取了位置在上海年龄22-27共计2000个左右的用户数据。

填写好spider.py中的用户名和密码,直接运行这个文件就可以爬取数据,因为数据量不大,很快就可以运行完毕,存储在mongodb中的数据如下:

爬虫用到的工具是requests,流程上也很简单,先发送登陆请求获取cookie,然后调用搜索API获取数据,拿到的数据是json格式,不需要任何转换直接存储mongodb,非常的方便,唯一想吐槽的就是花田搜索API接口竟然用的是POST方式,太没有专业水准了。

稍微提一下如何用request获取cookie,用Session构建一个session对象,用这个对象发送登陆请求后,之后的请求都会自动带上登陆返回的cookie,使用起来非常的简单。

2

给用户打标签

由于决策树属于监督学习,需要一个给定的标签,因此需要自己根据用户的外貌、年龄、学历等多个维度的判断给出一个标签,最后生成的决策树在一定程度上就可以反映自己的择偶标准。

针对女性的标签很简单粗暴,只有满意和不满意两种,有兴趣的同学可以按照真实的情况设置更多的标签,例如优秀、一般、备胎、不合格等等。

因为外貌是选择对象过程中一个必不可少的要素,把相貌量化至关重要,因为没有相关的工具根据头像进行评分,只能个人主观进行量化,采用了当下非常流行的十分制。

为了增加打标签的效率,专门写了一个桌面窗口,运行mark.py即可,运行结果如下。(tkinter是一个坑,调代码的时间够我把整个数据集看好几遍了,不过真的用起来的时候还是挺有意思的)

备注:因为刚开始看的很多用户只有头像、年龄、身高、工资、学历这五个信息,所以整个过程中只参考了这五个维度进行评价,下面的决策树也是根据这五个维度进行处理。

3

训练数据

决策树

机器学习中,决策树是一个预测模型,它代表的是对象属性与对象值之间的一种映射关系。

树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。

决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。

从数据产生决策树的机器学习技术叫做决策树学习, 通俗点说就是决策树,说白了,这是一种依托于分类、训练上的预测树,根据已知预测、归类未来。

理论方面我可以参考《机器学习实战》第三章,很浅显易懂的解释了具体的原理,我就不赘述了。

结果展示

代码参考的是《机器学习实战》,针对现实自己做了一些优化调整,和原来的代码不是完全相同,运行train.py就可以显示出结果,如下:

因为线很挤,调了很久只能拿到这个效果了。到这儿已经很清晰明了的阐明了主题,我就是一个外貌党,颜值高的pass,颜值低的忽略,不高不低的考虑的相当纠结。有兴趣的同学可以自己试一试。

文章来源:悟空智能科技

文章编辑:小柳

原文发布于微信公众号 - 灯塔大数据(DTbigdata)

原文发表时间:2018-06-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏iOS技术

iOS 地图点标记聚合方案(基于四叉树)

前言 在地图相关应用的开发中,我们常常遇到一个问题,当地图标注点过多的时候,会造成用户体验差、应用卡顿的情况。所以,我们需要一套高效的算法来解决标注的聚合、分散...

33590
来自专栏新智元

【自动编译代码】陈天奇团队TVM重磅更新:直接在浏览器使用GPU

【新智元导读】华盛顿大学陈天奇团队的深度学习自动优化代码生成器TVM发布更新,不需要写一行Javascprit代码,直接就能将深度学习模型编译到WebGL,然后...

45550
来自专栏AI研习社

Tensorflow 入门与安装 | Tensorflow 最全资料汇总【2】

【AI研习社】关注AI前沿、开发技巧及技术教程等方面的内容。欢迎技术开发类文章、视频教程等内容投稿,邮件发送至:zhangxian@leiphone.com 自...

38260
来自专栏hadoop学习笔记

大规模特征构建实践总结

一般大公司的机器学习团队,才会尝试构建大规模机器学习模型,如果去看百度、头条、阿里等分享,都有提到过这类模型。当然,大家现在都在说深度学习,但在推荐、搜索的场景...

13840
来自专栏PPV课数据科学社区

PyTorch和TensorFlow哪家强:九项对比读懂各自长项短板

近日,斯坦福大学计算机科学系博士生 Awni Hannun 也发表了一篇文章,谈了自己对 PyTorch 和 TensorFlow 这两大明星框架的心得体验,并...

45360
来自专栏华章科技

学习R语言,一篇文章让你从懵圈到入门

PivotalR:用于读取Pivitol(Greenplum)和HAWQ数据库中的数据

25730
来自专栏大数据文摘

手把手 | 如何在你的iPhone上建立第一个机器学习模型(Apple最新CoreML框架入门)

37650
来自专栏杨建荣的学习笔记

通过java画文本格式的统计图

一直想做一个东西,能够直接在Linux下显示文本格式的图形,比如点阵图,连线图,直方图等等。直接使用第三方的工具会有一些平台和类库的限制,所以小米加步枪自己周末...

40850
来自专栏PPV课数据科学社区

手把手教你学习R语言

随着分析数据的方式在近两年发生了翻天覆地的变化,随着互联网在人们的生活中广泛的普及,人手一部智能机的时代,人们的衣食住行都接上的互联网,这使得数据的获取量得以指...

1.2K80
来自专栏机器之心

深度 | PyTorch和TensorFlow哪家强:九项对比读懂各自长项短板

选自GitHub 作者:Awni Hannun 机器之心编译 参与:Panda 现在是各种机器学习框架群雄争霸的时代,各种各样的比较文章也层出不穷。近日,斯坦福...

33660

扫码关注云+社区

领取腾讯云代金券