0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

大神教你怎么用Python抓取婚恋网用户数据,用决策树生成自己择偶观

悟空智能科技 来源:未知 作者:李倩 2018-05-28 10:53 次阅读

最近在看《机器学习实战》的时候萌生了一个想法,自己去网上爬一些数据按照书上的方法处理一下,不仅可以加深自己对书本的理解,顺便还可以在github拉拉人气。刚好在看决策树这一章,书里面的理论和例子让我觉得这个理论和选择对象简直不能再贴切,看完长相看学历,看完学历看收入。如果可以从婚恋网站上爬取女性的数据信息,手动给她们打标签,并根据这些数据构建决策树,不就可以找出自己的择偶模式了吗!github项目:huatian-funny,下面就详细的阐释一下。

数据爬取

之前在世纪佳缘上爬取过类似的数据,总体的感觉是上面的用户数据要么基本不填要么一看就很假,周围的一些老司机建议可以在花田网上看下,数据质量确实高很多,唯一的缺点就是上面的数据不给爬,搜索用户的API需要登录,而且只显示三十多个用户的信息。刚好我需要的数据也很少,就把搜索条件划分的很细,每次取到的数据很小,但最终汇集的数量还是相当可观的,最终获取了位置在上海年龄22-27共计2000个左右的用户数据。填写好spider.py中的用户名和密码,直接运行这个文件就可以爬取数据,因为数据量不大,很快就可以运行完毕,存储在mongodb中的数据如下:

爬虫用到的工具是requests,流程上也很简单,先发送登陆请求获取cookie,然后调用搜索API获取数据,拿到的数据是json格式,不需要任何转换直接存储mongodb,非常的方便,唯一想吐槽的就是花田搜索API接口竟然用的是POST方式,太没有专业水准了。稍微提一下如何用request获取cookie,用Session构建一个session对象,用这个对象发送登陆请求后,之后的请求都会自动带上登陆返回的cookie,使用起来非常的简单。

给用户打标签

由于决策树属于监督学习,需要一个给定的标签,因此需要自己根据用户的外貌、年龄、学历等多个维度的判断给出一个标签,最后生成的决策树在一定程度上就可以反映自己的择偶标准。针对女性的标签很简单粗暴,只有满意和不满意两种,有兴趣的同学可以按照真实的情况设置更多的标签,例如优秀、一般、备胎、不合格等等。因为外貌是选择对象过程中一个必不可少的要素,把相貌量化至关重要,因为没有相关的工具根据头像进行评分,只能个人主观进行量化,采用了当下非常流行的十分制。

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

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

训练数据

决策树

机器学习中,决策树是一个预测模型,它代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。从数据产生决策树的机器学习技术叫做决策树学习, 通俗点说就是决策树,说白了,这是一种依托于分类、训练上的预测树,根据已知预测、归类未来。

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

结果展示

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器学习
    +关注

    关注

    66

    文章

    8373

    浏览量

    132393
  • python
    +关注

    关注

    55

    文章

    4778

    浏览量

    84439

原文标题:Python抓取婚恋网用户数据,用决策树生成自己择偶观

文章出处:【微信号:WUKOOAI,微信公众号:悟空智能科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    关于决策树,这些知识点不可错过

    用户甲具备偿还贷款能力。这整个判断还贷能力的过程,就用到了决策树的思想。02 决策树算法——基尼不纯度、熵基尼不纯度,是指将来自集合中的某种结果随机应用在集合中,某一数据项的预期误差率
    发表于 05-23 09:38

    分类与回归方法之决策树

    统计学习方法决策树
    发表于 11-05 13:40

    机器学习的决策树介绍

    机器学习——决策树算法分析
    发表于 04-02 11:48

    ML之决策树与随机森林

    ML--决策树与随机森林
    发表于 07-08 12:31

    怎样使用UNICO生成具有多个决策树的UCF文件呢

    使用 UNICO(v9.10.0.0),生成具有多个决策树的 UCF 文件的过程似乎是:1.加载所有决策树的所有测试数据,像对单个一样标记
    发表于 12-26 06:30

    决策树生成资料

    量、峰峰值、过零(正和负)、原始和过滤后的传感器数据峰值检测(正和负)。如果在所选的特征中观察到不同的模式,则可以使用决策树进行分类。考虑图 1 中所示的加速度数据示例。
    发表于 09-08 06:50

    决策树的介绍

    关于决策树的介绍,是一些很基础的介绍,不过是英文介绍。
    发表于 09-18 14:55 0次下载

    决策树的构建设计并用Graphviz实现决策树的可视化

    种涉及到的算法进行总结并附上自己相关的实现代码。所有算法代码以及用于相应模型的训练的数据都会放到GitHub上。 本文中我将一步步通过MLiA的隐形眼镜处方数集构建决策树并使用Graphviz将
    发表于 11-15 13:10 1.5w次阅读
    <b class='flag-5'>决策树</b>的构建设计并用Graphviz实现<b class='flag-5'>决策树</b>的可视化

    机器学习:决策树--python

    今天,我们介绍机器学习里比较常用的一种分类算法,决策树决策树是对人类认知识别的一种模拟,给你一堆看似杂乱无章的数据,如何用尽可能少的特征,对这些数据进行有效的分类。
    发表于 11-16 01:50 1609次阅读

    机器学习之决策树生成详解

    根据给定的数据集创建一个决策树就是机器学习的课程,创建一个决策树可能会花费较多的时间,但是使用一个决策树却非常快。创建决策树时最关键的问题就
    发表于 08-27 14:38 1.9w次阅读
    机器学习之<b class='flag-5'>决策树</b><b class='flag-5'>生成</b>详解

    决策树的原理和决策树构建的准备工作,机器学习决策树的原理

    希望通过所给的训练数据学习一个贷款申请的决策树,用于对未来的贷款申请进行分类,即当新的客户提出贷款申请时,根据申请人的特征利用决策树决定是否批准贷款申请。
    的头像 发表于 10-08 14:26 5969次阅读

    决策树的基本概念/学习步骤/算法/优缺点

    本文将介绍决策树的基本概念、决策树学习的3个步骤、3种典型的决策树算法、决策树的10个优缺点。
    发表于 01-27 10:03 2513次阅读
    <b class='flag-5'>决策树</b>的基本概念/学习步骤/算法/优缺点

    什么是决策树模型,决策树模型的绘制方法

    决策树是一种解决分类问题的算法,本文将介绍什么是决策树模型,常见的用途,以及如何使用“亿图图示”软件绘制决策树模型。
    发表于 02-18 10:12 1.3w次阅读
    什么是<b class='flag-5'>决策树</b>模型,<b class='flag-5'>决策树</b>模型的绘制方法

    决策树的结构/优缺点/生成

    决策树(DecisionTree)是机器学习中一种常见的算法,它的思想非常朴素,就像我们平时利用选择做决策的过程。决策树是一种基本的分类与回归方法,当被用于分类时叫做分类,被用于回归
    发表于 03-04 10:11 8235次阅读

    数据决策树

    认为是if-then的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。 决策树通常有三个步骤:特征选择、决策树生成决策树的修剪。
    的头像 发表于 10-20 10:01 1164次阅读