热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python收入预测_用Python预测收入,我用Python机器学习了5万人的数据

原标题:用Python预测收入,我用Python机器学习了5万人的数据Python界的网红机器学习,这股浪潮已经逐渐成为热点,

原标题:用Python预测收入,我用Python机器学习了5万人的数据

Python界的网红机器学习,这股浪潮已经逐渐成为热点,而Python是机器学习方向的头牌语言,用机器学习来玩一些好玩的项目一定很有意思。比如根据你的职业,婚姻,家庭,教育时间等等来预测你的收入,这么神奇!不信的话,一起跟我往下看。

1.数据集

收入问题一直是大家比较关心的热点,在kaggle比赛中,也出现过此类的数据集,因此,本次小实战的数据集就是来源于kaggle比赛的数据集,数据集长得样子如下:

上面密密麻麻一堆记录了几万人的收入数据,每个人的收入数据其实就是下面这些特征值,比如你的年龄,工作类类型啊,婚否,教育水平啊,时间啊,职业等等,详细如下:

1).导入数据集

我们将训练集和测试集加入列标签,然后查看训练集的信息,如下图所示:

2.数据清洗

2).去掉缺失值

数据集中存在缺失值,并且以‘ ?’形式来代替,所以我们要对这样的数据进行剔除。并将剔除后的数据集进行重新排序,如下图所示:

3).数值处理

因为测试集和训练集中标签‘income’的数据存在不统一的问题&#xff0c;在测试集中是以‘<&#61;50K.’的形式&#xff0c;而训练集中是‘<&#61;50K’&#xff0c;所以要将测试集中的数据形式改为训练集中的数据形式。

为了使得数据集中的编码类型一致&#xff0c;我们将数据集中的string类型&#xff0c;转化为数值类型&#xff0c;用到的是pandas库中的Categorical函数&#xff0c;转化完成后&#xff0c;通过观察数据集中的‘income’数据值来检查是否完成转换。

转化完成后&#xff0c;原先数据集中的字符串便被数字所代替&#xff0c;例如‘income’中的数据&#xff0c;原先是’<&#61;50K’和’>50K’。现在分别对应为0和1。其他的列也是同样的改变方式。也就是说最后我们预测收入如果为0&#xff0c;表示收入小于50k。

在这推荐下小编创建的Python学习交流群556370268&#xff0c;可以获取Python入门基础教程&#xff0c;送给每一位小伙伴&#xff0c;这里是小白聚集地&#xff0c;每天还会直播和大家交流分享经验哦&#xff0c;欢迎初学和进阶中的小伙伴。

到目前为止&#xff0c;数据清洗的工作基本上完成&#xff0c;下面&#xff0c;我们通过pandas库中的交叉表函数(crosstab)来观察‘受教育时间’和收入之间的关系&#xff1a;

其中‘income’下的1代表收入大于50K&#xff0c;由上图可以看出&#xff0c;当受教育时间小于8年时&#xff0c;收入大于50K的人数可谓是寥寥无几&#xff0c;所以说从统计概率的角度上讲&#xff0c;九年义务教育&#xff0c;对大家的收入还是很有帮助的。

3.用决策树来构建模型

什么是决策树&#xff0c;看下面这个形象的比如&#xff0c;就一清二楚了。

社区大妈经验丰富&#xff0c;有一套自己的判断逻辑。假设“抽烟”、“染发”和“讲脏话”是社区大妈认为的区分“好坏”学生的三项关键特征&#xff0c;那么这样一个有先后次序的判断逻辑就构成一个决策树模型。在决策树中&#xff0c;最能区分类别的特征将作为最先判断的条件&#xff0c;然后依次向下判断各个次优特征。决策树的核心就在于如何选取每个节点的最优判断条件&#xff0c;也即特征选择的过程。

而在每一个判断节点&#xff0c;决策树都会遵循一套IF-THEN的规则&#xff1a;

IF “抽烟” THEN -> “坏学生”

ELSE

IF “染发” THEN -> “坏学生”

ELSE IF “讲脏话” THEN -> “坏学生”

ELSE -> “好学生”

通过sklearn库提供的决策树算法&#xff0c;可以很方便的进行分类&#xff1a;

首先是建立一个clf的决策树分类器

然后将我们的训练数据导入fit函数&#xff0c;这里我们用到数据集中所有的特征值&#xff0c;因为数据集中的特征值只有14维&#xff0c;并不是很高的特征维度&#xff0c;因此&#xff0c;并不需要进行降维处理。

接着将数据导入训练决策树算法&#xff0c;训练完成后再我们的测试集上进行测试&#xff0c;

最后训练结果显示&#xff0c;准确率在80%左右&#xff0c;效果还是很不错的。

4.预测你的收入

看到这里小白是不是有点晕&#xff0c;这个模型到底靠不靠谱&#xff0c;我们用更直观的收入的例子来试试就知道啦&#xff1a;

上面的这个人有一堆参数&#xff0c;如果我们输入模型里面&#xff0c;通过模型来预测一些它的收入到底是多少呢&#xff0c;是不是真的是小于50K&#xff1a;

这里的array[0]表示最后的预测收入是小于50k的&#xff0c;而实际上这组数据的收入也确实如此&#xff01;懂点机器学习还是很有用的&#xff0c;尤其是喂了大量的数据之后&#xff0c;当然我们还可以通过网格来寻找最佳参数&#xff0c;有兴趣的小伙伴可以动手试试&#xff01;返回搜狐&#xff0c;查看更多

责任编辑&#xff1a;



推荐阅读
author-avatar
手机用户2602933613
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有