人口普查数据集独热编码转换

这篇具有很好参考价值的文章主要介绍了人口普查数据集独热编码转换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

人口普查数据集独热编码转换

描述

在机器学习中,数据的表示方式对于模型算法的性能影响很大,寻找数据最佳表示的过程被称为“特征工程”,在实际应用中许多特征并非连续的数值,比如国籍、学历、性别、肤色等,这些特征被称为离散特征(或分类特征),对于多数模型来说,需要预先对离散特征进行数字编码,独热编码(one-hot编码)是最常用的离散特征编码方式。

本任务的实践内容包括:

1、对人口普查数据集(adult)进行独热编码转换

2、对编码后的数据进行缩放预处理

3、建立逻辑回归分类模型并评估

源码下载

环境

  • 操作系统:Windows 10、Ubuntu18.04

  • 工具软件:Anaconda3 2019、Python3.7

  • 硬件环境:无特殊要求

  • 依赖库列表

    scikit-learn	0.24.2
    pandas          1.1.5
    Ipython         7.16.3
    

分析

本任务采用人口普查数据集(adult),该数据集由美国1994年人口普查数据库抽取而来,可以用来预测居民收入是否超过50K$/year。该数据集包含年龄、工种、学历、职业、人种等14个特征和1个标签列(收入),14个特征中有多个分类离散特征,需要进行编码转换。

Scikit-learn和Pandas都提供了独热编码功能,Scikit-learn通过LabelEncoder和OneHotEncoder类实现,Pandas通过get_dummies函数实现。

本任务基于adult数据集建立收入预测模型,预测居民收入是否超过50K,这是一个二分类问题,任务涉及以下几个环节:

A)加载、观察adult数据

B)转换独热编码

C)抽取特征数据与标签数据

D)数据缩放预处理

E)拆分测试集与训练集

F)建立逻辑回归模型并评估

实施

1、加载、观察adult数据

import pandas as pd
from IPython.display import display # display函数可以更美观地显示数据


# 读入数据集(原数据集中没有列名,我们为其加上)
data = pd.read_csv(
 "../dataset/adult.data",
 names=['age', 'workclass', 'fnlwgt', 'education', 'education-num',
 'marital-status', 'occupation', 'relationship', 'race', 'gender',
 'capital-gain', 'capital-loss', 'hours-per-week', 'native-country',
 'income'])

print(data.shape) # 32561个样本,14个特征+1个标签(收入)

# 简单查看其中几列(便于显示)
data_t = data[['age', 'workclass', 'education',  'race', 'occupation', 'gender', 'hours-per-week',
 'occupation', 'income']]

display(data_t.head()) # 查看前5行

结果如下:

人口普查数据集独热编码转换

2、转换独热编码

from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

# 将离散特征转为独热编码(该函数只转换非数字类型的列)
data = pd.get_dummies(data)
display(data) # 最后两列为标签

输出结果:

人口普查数据集独热编码转换

转化后,最后两列为标签,前面为特征列。

3、抽取特征与标签数据,建模并评估

X = data.iloc[:,0:-2].values # 取出特征数据(不包括最后两列)
y= data.iloc[:,-1].values # 取标签数据

X = StandardScaler().fit_transform(X) # 使用StandardScaler进行数据缩放
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0) # 拆分数据

model = LogisticRegression().fit(X_train, y_train) # 建里LR分类模型
score = model.score(X_test, y_test) # 评估模型
print(score)

结果如下:文章来源地址https://www.toymoban.com/news/detail-413615.html

分类准确率为85%

到了这里,关于人口普查数据集独热编码转换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习中使用的独热编码

    独热编码(One-Hot Encoding)是一种常用的特征编码方法,主要用于将离散特征转换为连续特征,以便机器学习算法能够更好地处理。独热编码将每个离散特征的取值映射为一个二进制向量,其中只有一个元素为 1,其余元素都为 0,这个元素的位置表示了该取值在所有取值中的

    2024年02月02日
    浏览(39)
  • 机器学习之独热编码(One-Hot)

    一、背景 在机器学习算法中,我们经常会遇到分类特征,例如:人的性别有男女,祖国有中国,美国,法国等。这些特征值并不是连续的,而是离散的,无序的。通常我们需要对其进行特征数字化。那什么是特征数字化呢?例子如下:     性别特征:[\\\"男\\\",\\\"女\\\"] =[0,1]    

    2024年01月23日
    浏览(49)
  • 05 神经网络语言模型(独热编码+词向量的起源)

    博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https://github.com/nickchen121/Pre-training-language-model 配套博客链接:https://www.cnblogs.com/nickchen121/p/15105048.html 统计+语言模型–》用统计的方法去完成以下两个和人说的话相关的任务 语言模

    2024年02月14日
    浏览(38)
  • FPGA中有限状态机的状态编码采用格雷码还是独热码?

            有限状态机是由寄存器组和组合逻辑构成的硬件时序电路,其状态(即由寄存器组的1和0的组合状态所构成的有限个状态)只可能在同一时钟跳变沿的情况下才能从一个状态转向另一个状态,究竟转向哪一状态还是留在原状态不但取决于各个输入值,还取决于当前

    2024年02月05日
    浏览(77)
  • 最好的独热码与二进制转换

    综合结果 提高位宽 综合结果 位宽对综合结果无影响 综合结果 综合结果 这种方法应该是趋于完美的写法,资源耗费较少 根据推断,独热码转换应该是如下情况 如何参数化设计,目前没想到方法; 如果各位有更好的方法可以直接留言

    2024年02月16日
    浏览(50)
  • Java+GeoTools实现WKT数据根据EPSG编码进行坐标系转换

    Java+GeoTools(开源的Java GIS工具包)快速入门-实现读取shp文件并显示: Java+GeoTools(开源的Java GIS工具包)快速入门-实现读取shp文件并显示_霸道流氓气质的博客-CSDN博客 在上面实现Java中集成Geotools之后,需求是将WKT数据转换成其他坐标系的WKT。 比如说将EPSG:4524的坐标系转换成EPSG:2

    2023年04月25日
    浏览(38)
  • JS十六进制,CRC冗余,小程序发送蓝牙数据,十六进制GBK编码转换等

    小程序问题:https://kf.qq.com/faq/170705YVZFZZ170705eyI7Rr.html 调用: 注意:这里的true和false代表是否大端小端转换 调用: 调用: 调用: 调用: 调用: 此代码写到小程序utils目录下的utuils.js文件中 调用:页面最上边先引入,然后再使用 调用: 这里发送buffer1给小程序公用api就可 调

    2024年02月16日
    浏览(73)
  • 数学建模-预测人口数据

    目录 中国09~18年人口数据 创建时间 绘制时间序列图 使用专家建模器 得到结果 预测结果 残差的白噪声检验 路径: 数据- 定义日期和时间 看看spss最终判断是那个模型最佳的契合

    2024年01月21日
    浏览(35)
  • Redis数据迁移过程,使用jedis客户端发送命令,需要注意string和byte类型的命令,如果使用的转换字符编码不一致,会导致丢数据

    string与byte来回转换,需要指定一样字符编码规则 详细原因请参考: 关于Java中bytes到String的转换-阿里云开发者社区   简单来说 (1)string和byte转换之间需要指定字符编码参数Charset.defaultCharset(),默认不指定的情况下,使用的是utf-8编码,所以一般情况下相互转换使用的都是同

    2023年04月09日
    浏览(90)
  • python数据可视化项目设计-中国人口

     大三数据可视化,基于python,使用包matplotlib绘制图形。数据来源是国家数据。数据下载链接国家数据  

    2024年02月12日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包