人口普查数据集独热编码转换
人口普查数据集独热编码转换
描述
在机器学习中,数据的表示方式对于模型算法的性能影响很大,寻找数据最佳表示的过程被称为“特征工程”,在实际应用中许多特征并非连续的数值,比如国籍、学历、性别、肤色等,这些特征被称为离散特征(或分类特征),对于多数模型来说,需要预先对离散特征进行数字编码,独热编码(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)
结果如下:
分类准确率为85%。
人口普查数据集独热编码转换相关推荐
- ML之xgboost:利用xgboost算法对Boston(波士顿房价)数据集【特征列分段→独热编码】进行回归预测(房价预测)+预测新数据得分
ML之xgboost:利用xgboost算法对Boston(波士顿房价)数据集[特征列分段→独热编码]进行回归预测(房价预测)+预测新数据得分 导读 对Boston(波士顿房价)数据集进行特征工程,分 ...
- 为什么独热编码会引起维度诅咒,以及避免他的几个办法
特征工程是数据科学模型开发的重要组成部分之一.数据科学家把大部分时间花在数据处理和特征工程上,以便训练一个鲁棒模型.数据集由各种类型的特征组成,包括类别.数字.文本.日期时间等. 由于大多数机器学习模 ...
- 机器学习中使用的独热编码
什么是独热编码? 独热编码(One-Hot Encoding)是一种常用的特征编码方法,主要用于将离散特征转换为连续特征,以便机器学习算法能够更好地处理.独热编码将每个离散特征的取值映射为一个二进制向 ...
- 5.sklearn之转换器(划分训练集和测试集、以及标准化、归一化数据会用transform,独热编码也会用到)
文章目录 1. 什么是转换器? 2. 测试集和训练集 2.1 训练集 .测试集.验证集 2.2 拆分训练集测试集有个问题 2.3 代码 3. 标准化 3.1 上离差标准化代码(举一反三就好了,其他几个 ...
- 循环神经网络的实现(独热编码,梯度裁剪)
参考8.5. 循环神经网络的从零开始实现 - 动手学深度学习 2.0.0 documentation 参考循环神经网络(MLP-->RNN)_流萤数点的博客-CSDN博客 我们可以训练一个基于循 ...
- 【sklearn】数据预处理之独热编码(含两种实现方式+代码理解)
最近学习机器学习,接触到独热编码相关内容,参考了一些资料,加上自己的思考,做出了如下总结: 一.什么是独热编码 独热编码,即One-Hot编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态 ...
- 数据预处理之独热编码(One-Hot)
1.前言 在机器学习算法中,我们经常会遇到分类特征,例如:人的性别有男女,祖国有中国,美国,法国等. 这些特征值并不是连续的,而是离散的,无序的.通常我们需要对其进行特征数字化. 那什么是特征数字化呢 ...
- 集成学习模型(xgboost、lightgbm、catboost)进行回归预测构建实战:异常数据处理、缺失值处理、数据重采样resample、独热编码、预测特征检查、特征可视化、预测结构可视化、模型
集成学习模型(xgboost.lightgbm.catboost)进行回归预测构建实战:异常数据处理.缺失值处理.数据重采样resample.独热编码.预测特征检查.特征可视化.预测结构可视化.模型保 ...
- 独热编码(one-hot)是什么?什么数据类型需要进行独热编码?pandas如何进行独热编码(one-hot)?
独热编码(one-hot)是什么?什么数据类型需要进行独热编码?pandas如何进行独热编码(one-hot)? 独热编码即 One-Hot 编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个 ...
最新文章
- 洛谷P1020/CODEVS1044 导弹拦截(拦截导弹)
- 5.prometheus告警插件-alertmanager、自定义webhook案例编写
- 打开My Lead detail page会发生timeout的错误的解决方案
- CSS之flex需要知道的一切(二)
- CentOS7 下安装 Redis
- 消息队列属性及常见消息队列介绍
- kibana安装与基础用法
- 安卓数据读写全解:SharedPreferences公共数据的读写,SQLiteDatabase数据库,mysql数据库
- Dubbo入门----搭建一个最简单的Demo框架
- luogu P2783 有机化学之神偶尔会做作弊
- BZOJ 1087 [SCOI2005]互不侵犯King(状压DP)
- paip.解决 数据库mysql增加列 字段很慢添加字段很慢
- python 仿真 电力系统自动化_电力系统自动化仿真系统
- Windows Server安装 IIS 时报错:刷新服务器管理器时出现意外错 误:无法打开匿名级安全令牌。(异常来自 HRESULT:0x80070543)
- openmv实现二维码识别与串口发送
- 共享充电宝的终局:金钱游戏
- Win11家庭版无法远程连接的解决办法
- 955 互联网公司白名单来了!这些公司月薪20k,没有996!福利榜国内大厂只有这家!...
- 多应用多平台支付模块设计-基础模块开篇
- 【Jquery】jquery-qrcode把域名地址生成二维码图片,扫码即可访问