python sklearn labelencoder、OneHotEncoder和get_dummies的区别

labelencoder
  • LabelEncoder 将不连续的数字or文本进行编号
import numpy as np
import pandas as pd
data = pd.DataFrame({
   "学号":[1001,1002,1003,1004],
                    "性别":["男","女","女","男"],
                    "学历":["本科","硕士","专科","本科"]})
data
学号	性别	学历
0	1001	男	本科
1	1002	女	硕士
2	1003	女	专科
3	1004	男	本科
## 选择object类型的变量
lis = list(data.select_dtypes(include='object').columns)
lis

['性别', '学历']
  • 使用LabelEncoder进行编码,每个变量单独进行多变量的编码
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()

for m in lis:
    data[m] = le.fit_transform(data[m])
 
data
	学号	性别	学历
0	1001	1	1
1	1002	0	2
2	1003	0	0
3	1004	1	1
OneHotEncoder
  • OneHotEncoder 对表示分类的数字进行编码

输入的应该是表示类别的数字,如果输入文本,会报错的。

from sklearn.preprocessing import OneHotEncoder
OHE = OneHotEncoder()
OHE.fit(data)
data3 = le.fit_transform(data["性别"])
OHE.fit(data3.reshape(-1,1))
OHE.transform(data3.reshape(-1,1)).toarray()
array([[0., 1.],
       [1., 0.],
       [1., 0.],
       [0., 1.]])
get_dummies
  • get_dummies的效果和LabelEncoder一致
pd.get_dummies(data)

	学号	性别	学历
0	1001	1	1
1	1002	0	2
2	1003	0	0
3	1004	1	1
LabelBinarizer

对因变量y不能用OneHotEncoder,要用LabelBinarizer

from sklearn.preprocessing import LabelBinarizer

lab = LabelEncoder()

lab.fit_transform(data['学历'])
array([1, 2, 0, 1], dtype=int64)

相关推荐

  1. “==”“equals”区别

    2024-01-30 09:42:02       41 阅读
  2. == equals 区别

    2024-01-30 09:42:02       35 阅读
  3. #{}${}区别

    2024-01-30 09:42:02       22 阅读
  4. &&&区别

    2024-01-30 09:42:02       14 阅读
  5. 振动震动区别

    2024-01-30 09:42:02       105 阅读
  6. axiosajax区别

    2024-01-30 09:42:02       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-30 09:42:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-30 09:42:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-30 09:42:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-30 09:42:02       18 阅读

热门阅读

  1. 龙哥风向标 20230620~20230627 GPT拆解

    2024-01-30 09:42:02       52 阅读
  2. 1.7 SBFD

    1.7 SBFD

    2024-01-30 09:42:02      28 阅读
  3. 一键配置ssh免密登录脚本

    2024-01-30 09:42:02       28 阅读
  4. ARM/CM3/CM4:读写内核寄存器和内核特殊寄存器

    2024-01-30 09:42:02       27 阅读
  5. 第二百九十四回

    2024-01-30 09:42:02       28 阅读
  6. 仓库管理系统WMS设计思路

    2024-01-30 09:42:02       35 阅读
  7. 【从浅到深的算法技巧】初级排序算法 下

    2024-01-30 09:42:02       27 阅读
  8. flutter制作APP的学习

    2024-01-30 09:42:02       37 阅读