🌠 『精品学习专栏导航帖』
- 🐳最适合入门的100个深度学习实战项目🐳
- 🐙【PyTorch深度学习项目实战100例目录】项目详解 + 数据集 + 完整源码🐙
- 🐶【机器学习入门项目10例目录】项目详解 + 数据集 + 完整源码🐶
- 🦜【机器学习项目实战10例目录】项目详解 + 数据集 + 完整源码🦜
- 🐌Java经典编程100例🐌
- 🦋Python经典编程100例🦋
- 🦄蓝桥杯历届真题题目+解析+代码+答案🦄
- 🐯【2023王道数据结构目录】课后算法设计题C、C++代码实现完整版大全🐯
文章目录
- 前言
- 一、✌ get_dummies
- 1、✌ 导库,创建表格
- 2、✌ 调用哑变量方法
- 3、✌ 删除无用列
- 4、✌ 修改列的名字
- 二、✌OneHotEncoder
- 1、✌ 导库
- 2、✌ 调用OneHotEncoder函数
- ✌ 总结
前言
机器学习在建模期间一般使用的是纯数值型数据,但是在实际生活中往往数据中会掺杂一些文本数据,例如人员信息中的性别等,这里的男,女,我们可以转化成为线性不相关的矩阵,如(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一起使用,为高维数据进行降维。