特征工程之数据预处理——哑变量处理

简介: 特征工程之数据预处理——哑变量处理

前言

机器学习在建模期间一般使用的是纯数值型数据,但是在实际生活中往往数据中会掺杂一些文本数据,例如人员信息中的性别等,这里的男,女,我们可以转化成为线性不相关的矩阵,如(1,0)、(0,1),在机器学习中这被称为哑变量。本节介绍两种方法来实现数值与非数值的转化,分别是pandas库中的get_dummies()和sklearn中的OneHotEncoder。


提示:以下是本篇文章正文内容,下面案例可供参考

一、✌ get_dummies

1、✌ 导库,创建表格

import pandas as pd
df=pd.DataFrame({'编号':[1,2,3],'性别':['男','女','男']})

2、✌ 调用哑变量方法

df=pd.get_dummies(df,columns=['性别'])

3、✌ 删除无用列

因为性别只包含两个值,所以可以用一列来表达

df=df.drop(columns=['性别_女'])

4、✌ 修改列的名字

df=df.rename(columns={'性别_男':'性别'})

二、✌OneHotEncoder

1、✌ 导库

from sklearn.preprocessing import OneHotEncoder
df=pd.DataFrame({'编号':[1,2,3],'性别':['男','女','男']})

2、✌ 调用OneHotEncoder函数

  • 首先实例化OneHotEncoder
  • 然后导入数据,然后导出结果
df_sex=OneHotEncoder().fit_transform(pd.DataFrame(df.iloc[:,1]).values).toarray()
df=pd.concat([df,pd.DataFrame(df_sex)],axis=1)
df.columns=['编号','性别','性别_女','性别_男']
df

✌ 总结

提示:这里对文章进行总结:

哑变量处理将分类变量转化为数值变量,为后续构建模型打好了基础,但是构造哑变量容易产生高维数据,所以需要和PCA一起使用,为高维数据进行降维。


目录
相关文章
|
数据采集 机器学习/深度学习 数据挖掘
【机器学习4】构建良好的训练数据集——数据预处理(一)处理缺失值及异常值
【机器学习4】构建良好的训练数据集——数据预处理(一)处理缺失值及异常值
550 0
|
7月前
|
机器学习/深度学习 Python
【机器学习】包裹式特征选择之递归特征消除法
【机器学习】包裹式特征选择之递归特征消除法
1132 4
|
7月前
|
数据可视化 vr&ar
时间序列分析实战(七):多个变量的ARIMA模型拟合
时间序列分析实战(七):多个变量的ARIMA模型拟合
|
7月前
|
机器学习/深度学习 前端开发 数据可视化
R语言缺失数据变量选择LASSO回归:Bootstrap重(再)抽样插补和推算
R语言缺失数据变量选择LASSO回归:Bootstrap重(再)抽样插补和推算
|
7月前
stata对包含协变量的模型进行缺失值多重插补分析
stata对包含协变量的模型进行缺失值多重插补分析
|
机器学习/深度学习 数据采集 存储
【机器学习6】数据预处理(三)——处理类别数据(有序数据和标称数据)
【机器学习6】数据预处理(三)——处理类别数据(有序数据和标称数据)
288 0
|
7月前
R语言计量经济学:虚拟变量(哑变量)在线性回归模型中的应用
R语言计量经济学:虚拟变量(哑变量)在线性回归模型中的应用
|
7月前
|
机器学习/深度学习 算法 数据挖掘
【机器学习】包裹式特征选择之递归特征添加法
【机器学习】包裹式特征选择之递归特征添加法
209 5
|
7月前
|
机器学习/深度学习 算法 数据挖掘
【机器学习】特征选择之包裹式特征选择法
【机器学习】特征选择之包裹式特征选择法
279 4
|
7月前
|
机器学习/深度学习
R语言随机森林模型中具有相关特征的变量重要性
R语言随机森林模型中具有相关特征的变量重要性