用Python预测收入,来看看你的收入到底应该是多少?

2023-11-04

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

640?wx_fmt=gif

1.数据集

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

640?wx_fmt=png

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

640?wx_fmt=png

1).导入数据集

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

640?wx_fmt=png

2.数据清洗

2).去掉缺失值

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

640?wx_fmt=png

3).数值处理

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

640?wx_fmt=png

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

640?wx_fmt=png

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

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

640?wx_fmt=png

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

3.用决策树来构建模型

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

640?

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

而在每一个判断节点,决策树都会遵循一套IF-THEN的规则:

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

ELSE

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

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

                       ELSE -> “好学生”

通过sklearn库提供的决策树算法,可以很方便的进行分类:

640?wx_fmt=png

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

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

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

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

4.预测你的收入

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

640?wx_fmt=png

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


640?wx_fmt=png

这里的array[0]表示最后的预测收入是小于50k的,而实际上这组数据的收入也确实如此!懂点机器学习还是很有用的,尤其是喂了大量的数据之后,当然我们还可以通过网格来寻找最佳参数,有兴趣的同学可以动手试试!

本公众号回复【收入】即可获得源码

640?

日常推荐

终于有人把云计算、大数据和人工智能讲明白了!

今日问题

什么是系统调用?它和库函数调用有什么区别?

打卡格式:打卡第n天,答:xxx

640?wx_fmt=png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用Python预测收入,来看看你的收入到底应该是多少? 的相关文章

  • Safari安装使用JsonView插件

    google的jsonView插件可以使接口数据json化 方便查看 下载地址 https github com rfletcher safari json formatter downloads 下载后直接点击打开安装 默认是自动开启的
  • Junit单元测试报错java.lang.Exception: No tests found matching

    在Java代码的开发过程中 我们经常会需要写单元测试 但是由于有些项目在构建的过程中 时间比较紧张 导致我们并不去重视或者没有时间去写单元测试 今天因为需要做一个接口加密的问题 需要用到单元测试 结果写完单元测试 发现运行测试就报错 jav
  • oracle查询第三个字母是A的员工,oracle_day2 限制查询

    限制查询 一 逻辑比较操作符 gt lt 不等于 三个都表示不等于的意思 经常用的是 lt gt 1 查看员工工资小于1000的员工id和名字 select id first name last name all name from s e
  • 数字电路设计之ARM m0进度(1)

    这个例子是用于测试我写的ARM这个内核 测试例子是一个求最大公约数和最小公倍数的程序 2014 10 21 1 已解决问题 LDR1这条指令的 10 i datain lt LDR1 5 b0000 1 gr0 gr2 LDR0 5 b01
  • Buildroot系列开发(五)bootloader简述

    参考 百问网 文章目录 1 什么是Boot loader 2 有哪些bootloader 哪些支持linux 3 Bootloader支持的Flash设备 4 Bootloader支持的文件系统类型 4 Bootloader支持的CPU架构
  • 【深度学习与计算机视觉】12、迁移学习

    文章目录 一 迁移学习简介 二 为什么要使用迁移学习 三 迁移学习的实现 四 迁移学习系统介绍 一 原始数据有标签 目标数据有标签 1 模型微调 model fine tune 也叫再优化 1 保守训练 Conservative Train
  • Nginx系列(十九):URI转义机制(部分转载)

    一 URI和特殊字符 源文档 https www cnblogs com upyun p 8267334 html 1 URI URI 全称是 Uniform Resource Identifiers 即统一资源标识符 用于在互联网上标识一
  • 【51单片机】LED模块和独立按键的使用

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 原理介绍
  • MIMO 从入门到精通 -科普篇 1 - 5G Massive MIMO

    参考 Our Technology Planet lt lt 5G Massive MIMO Made Simple Learn All About Massive MIMO Beam Forming In 30 minutes gt gt
  • ESP32 Wi-Fi & 蓝牙 Tx Power 调整方法

    此篇博客用来整理 ESP32 Wi Fi BLE 的 Tx Power 调整方法 此博客分为两部分 Wi Fi Tx Power 调整 BLE Tx Power 调整 BR EDR Tx Power 调整 注 当前使用 的 IDF comm
  • Kubeadm 安装 Kubernetes:kubelet 状态失败的解决方案

    Kubeadm 安装 Kubernetes kubelet 状态失败的解决方案 在使用 kubeadm 安装 Kubernetes 集群时 遇到 kubelet 状态失败的问题是比较常见的 这个问题主要出现在 kubelet 无法正常启动或
  • 如何查看微信image/*.dat文件

    背景 起因我是想看看能不能获取的到撤回的图片 于是在 WeChat Files FileStorage Image这个文件下发现了聊天记录储存的文件 却发现文件已被加密 也就有了这篇文章 关于撤回的图片这个问题 结论是获取不到 聊天记录里加
  • Apk脱壳圣战之—如何脱掉“梆梆加固”的保护壳

    一 前言 现如今Android用户的安全意识不是很强 又有一些恶意开发者利用应用的名字吸引眼球 包装一个恶意锁机收费的应用 在用户被骗的安装应用之后 立马手机锁机 需要付费方可解锁 这样的恶意软件是非常让人痛恨的 所以本文就用一个案例来分析
  • HIT-ICS2020大作业

    doc排版转换成md太恶心了 图片三四十张 推荐下载我上传的资源查看 https download csdn net download ggtged 12469782 计算机系统大作业 题 目 程序人生 Hello s P2P 专 业 人工
  • chatpdf+mindshow由论文pdf直接生成报告PPT,拯救研究牲

    chatpdf mindshow由论文pdf直接生成报告PPT 拯救研究牲 感谢AIGC技术 现在可以从论文的pdf直接生成展示的PPT STEP1 STEP2 最终效果预览 步骤 STEP1 论文PDF到PPT的markdown格式 ch
  • 配置Log4j

    来自 http www blogjava net zJun archive 2006 06 28 55511 html Log4J的配置文件 Configuration File 就是用来设置记录器的级别 存放器和布局的 它可接key va
  • DB2 SQL error: SQLCODE: -302, SQLSTATE: 22001, SQLERRMC: null

    DB2 SQL error SQLCODE 302 SQLSTATE 22001 SQLERRMC null 当向数据库中插入记录时遇到以下异常 后经查处是 我将数据库自动生成逐渐的UUID改成了在java代码中手动生成UUID造成的 其实
  • CUDA by example Chapter6 常量内存与事件

    常量内存与事件 常量内存 光线跟踪 在GPU上实现光线追踪 通过常量内存来实现光线追踪 使用事件来测量性能 常量内存 使用常量内存的原因 GPU中含有数量庞大的计算单元 因此性能瓶颈通常并不在于芯片的数学计算吞吐量 而是在于芯片的内存带宽
  • 一款很漂亮的一天只弹窗一次的公告

    一款很漂亮的可设置时间的弹窗公告 可自定义HTML代码的公告 CSS代码 核客互动公告 blog hackeus cn btn large load all popup btn popup btn o page number padding
  • 学习java中的if语句

    java中if语句 if语句 用于判断 可以单分支 也可以多分支 单分支 if 判断语句 满足 则执行的代码块 else 不满足判断语句时 执行的代码块 多分支 if 判断语句1 满足判断语句1 执行的代码块 else if 判断语句2 不

随机推荐

  • pycharm远程调试,python remote debug,不进断点

    不 要 直 接 在 线 上 环 境 远 程 debug 不 要 直 接 在 线 上 环 境 远 程 debug 不 要 直 接 在 线 上 环 境 远 程 debug 目录 1 操作步骤 如下图所示 1 Tools gt Deploymen
  • 总结 Underlay 和 Overlay 网络,在k8s集群实现underlay网络,网络组件flannel vxlan/ calico IPIP模式的网络通信流程,基于二进制实现高可用的K8S集群

    1 总结Underlay和Overlay网络的的区别及优缺点 Overlay网络 Overlay 叫叠加网络也叫覆盖网络 指的是在物理网络的 基础之上叠加实现新的虚拟网络 即可使网络的中的容器可 以相互通信 优点是对物理网络的兼容性比较好
  • 用python实现简单的飞机大战小游戏

    1 下载一个包 PySide2 5 15 2 1 5 15 2 cp35 cp36 cp37 cp38 cp39 cp310 none win amd64 如果下载错误 就先下载shiboken2 5 15 2 1 5 15 2 cp35
  • python——类型转换和冗余数据删除

    1 类型转换 import pandas as pd import datetime 一般我们拿到日期型数据时 基本都是字符串表示的 该如何将其转换为日期型和日期时间型 法1 dt 2019 06 13 16 16 39 d 2017 04
  • Spring:IoC和DI完成打印机打印详细说明过程及代码

    Spring IoC和DI完成打印机 课后作业 使用Spring的IoC DI 装配一台打印机 纸张接口 实现 有 A4 A5 墨盒接口 实现 有 黑白 彩色 注解方式和非注解方式都要 说明 1 首先是注解方式 下面那些代码就是用注解方式做
  • 十九. Kubernetes NetworkPolicy 网络隔离策略

    目录 一 NetworkPolicy 基础解释 一 NetworkPolicy 基础解释 官方文档 NetworkPolicy 网络策略 网络隔离策略 k8s中资源是通过命名空间隔离的 但是为了保证k8s的网络互通性 是没有做隔离的 防止调
  • 高德地图API用户定位失败Geolocation permission denied

    问题描述 手机页面通过高德 js 进行用户定位失败 Geolocation permission denied mapObj new AMap Map iCenter mapObj plugin AMap Geolocation funct
  • 【Linux网络(C++)】——网络套接字(TCP/UDP编程模型)多进程,多线程,线程池服务器开发(画图解析)

    目录 一 套接字基本概念 IP地址 TCP和UDP协议 端口号 端口号vs 进程pid 网络字节序 本地字节序转换成网络字节序 网络字节序转换为本地字节序 二 套接字的基本操作 socket的创建 域 domain 类型 type 协议 P
  • 【线程(二)】——互斥量的详细解析

    作者 努力学习的少年 个人简介 双非大二 一个正在自学c 和linux操作系统 写博客是总结知识 方便复习 目标 进大厂 如果你觉得文章可以的话 麻烦你给我点个赞和关注 感谢你的关注 目录 进程线程间的互斥的相关概念 错误的抢票系统 lin
  • 物理渗透-Mifare Classic S50(IC)卡分析

    前言 我们不管是在小区里还是公司里 都可能会使用过门禁卡 比如乘坐电梯需要刷工牌才使用 而且只能去特定的楼层 生活中还有很多地方用到过IC卡 商铺的会员卡 交通的公交卡等等 关于IC ID卡的基础 本节不做详细叙述 只介绍M1的IC卡如何去
  • 【C++ Primer】重载运算与类型转换

    文章目录 一 基本概念 二 输入输出运算符 1 重载输出运算符 lt lt 2 重载输入运算符 gt gt 三 算数和关系运算符 1 相等运算符 2 关系运算符 四 赋值运算符 五 下标运算符 六 递增递减运算符 七 成员访问运算符 八 函
  • windows下网络编程UDP

    转载 C UDP客户端服务器Socket编程 UDPServer cpp include
  • IC项目中svn使用经验总结

    一 svn权限 二 svn分支 三 项目中遇到的问题总结 svn内容太大怎么解 svn的trunk经常不稳定怎么解 svn merge 冲突的处理方式 四 疑问 svn使用者未及时提交代码至trunk分支怎么办 提交代码至trunk后在tr
  • 每日一题:从前序与中序遍历序列(C++)

    题目描述 根据一棵树的前序遍历与中序遍历构造二叉树 注意 你可以假设树中没有重复的元素 例如 给出 前序遍历 preorder 3 9 20 15 7 中序遍历 inorder 9 3 15 20 7 返回如下的二叉树 3 9 20 15
  • html、vue、uni-app微信小程序的区别

    传统的h5只有1端 即浏览器 而uni app可跨多端 虽仍属前端 与传统h5有不同 网络模型的变化 以前网页大多是b s 服务端代码混合在页面里 现在是c s 前后端分离 通过js api 类似ajax的uni request 获取jso
  • opencv读取rtsp的一些优化

    用队列将同步转为异步 import cv2 import queue import time import threading q queue Queue def Receive print start Reveive cap cv2 Vi
  • 迅雷链同构多链框架解析

    本文转载自迅雷官方微信群 传统意义上的 甚至是消费者端熟知的迅雷 是那家唯一在美国上市的中国下载服务商 主营业务还是在线广告 游戏和会员 迅雷从2015年开始对分布式计算和区块链领域的布局 这几年 迅雷布局了CDN 推出了C端的赚钱宝和玩客
  • Notepad++ 支持markdown语法

    之前windows下想编写markdown只是通过有道云笔记来写 看的时候简单的就直接用notepad 看 有些语法得导入到有道云笔记中看很不方便 搜索windows下的markdown编辑工具 Typora sublime markdow
  • myBase7安全破解的方法

    转自https blog csdn net weixin 42414714 article details 89642305 首先 保证myBase7是关闭状态 然后执行以下步骤 1 找到myBase7的安装目录 右击mybase的启动图标
  • 用Python预测收入,来看看你的收入到底应该是多少?

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