专栏首页灯塔大数据分析 | Python抓取婚恋网用户数据,原来这才是年轻人的择偶观

分析 | 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)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 深度 | 新零售是个坑,线上流量红利一直都在

    前言 线上红利真的尽了?在我看来,更多是“渠道曝光”简单粗暴获取线上流量的红利尽了,我们进入了一个拼创意、拼内容的社交传播时代。 1 新零售是个坑 “新零售”是...

    灯塔大数据
  • 塔秘 | 详解用深度学习方法处理结构化数据

    导读 鉴于使用深度学习方法按照本文所介绍的步骤处理结构化数据有以下的好处:快;无需领域知识;表现优良,本文主要详细讲述如何用深度学习方法处理结构化数据。 在机器...

    灯塔大数据
  • 荐读|大数据技术在里约奥运会的转型中起到了极大的作用

    技术开发在里约奥运会的转型中起到了极大地作用,不论是在提高比赛结果准确性还是提升运动员的表现上。新的转型乃至更大的影响预计来自大量传感器以及大数据分析的采用。...

    灯塔大数据
  • 在茫茫决策树入门帖里,我强推这篇(附可视化图)

    决策树是我最喜欢的模型之一,它们非常简单但是很强大。事实上,Kaggle中大多数表现优秀的项目都是XGBoost和一些非常绝妙的特征工程的结合,XGBoost是...

    zenRRan
  • 实用 | 分享一个决策树可视化工具

    【磐创AI导读】:这篇文章希望跟大家分享一个可视化决策树或者随机森林的工具。这可以帮助我们更好的去理解或解释我们的模型。想要获取更多的机器学习、深度学习资源。欢...

    磐创AI
  • 机器学习(十) ——使用决策树进行预测(离散特征值)

    机器学习(十)——使用决策树进行预测(离散特征值) (原创内容,转载请注明来源,谢谢) 一、绘制决策树 决策树的一大优点是直观,但是前提是其以图像形式展示。如...

    用户1327360
  • 入门决策树 | 概述篇 | 山人聊算法 | 6th

    说完了感知机的事儿。我们这次来聊聊决策树,决策树是一种可解释性好、对各种非线性情况适应性强的方法。

    用户7623498
  • 机器学习实战之Python3实现决策树算法

    导语:今天这篇文章也是我们的志愿编辑写出来的文章哦,稳重介绍了如何在python3中实现自己的决策树算法并画出来!另外,小编Tom邀请你一起搞事情! 预备知识:...

    IT派
  • 关于决策树的一些学习

    最近学习了一段时间的决策树算法,但是感觉并没有达到自己预期的想法,所以这几天参考了一些决策树方面的资料,来将自己的学习的过程的笔记记录在这里,来加深理解和请教别...

    云时之间
  • 开发者自述:我是如何理解决策树的

    前言 最近学习了一段时间的决策树算法,但是感觉并没有达到自己预期的想法,所以这几天参考了一些决策树方面的资料,来将自己的学习的过程的笔记记录在这里,来加深理...

    AI研习社

扫码关注云+社区

领取腾讯云代金券