python sklearn labelencoder、OneHotEncoder和get_dummies的区别

文章目录

        • labelencoder
        • OneHotEncoder
        • get_dummies
        • LabelBinarizer

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

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

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

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

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

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

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

python">from sklearn.preprocessing import LabelBinarizer

lab = LabelEncoder()

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

http://www.niftyadmin.cn/n/5345844.html

相关文章

深度学习-Pytorch如何构建和训练模型

深度学习-Pytorch如何构建和训练模型 用pytorch如何构建模型,如何训练模型,如何测试模型? pytorch 目前在深度学习具有重要的地位,比起早先的caffe,tensorflow,keras越来越受到欢迎,其他的深度…

JavaScript学习-对象方法this

JavaScript学习-对象方法this 注意:this的值在函数被调用时动态确定,函数如何被调用决定了this的值。详细介绍: 1. 全局上下文下的this: 在全局上下文中,this指向全局对象(浏览器中通常指window&#xf…

好的牧场,产出新鲜美味的羊奶

好的牧场,产出新鲜美味的羊奶 牧场是养殖优质羊奶的重要基地,好的牧场能够提供良好的生态环境和饲养管理,让羊群生活在舒适的环境中产出新鲜美味的羊奶。那么,究竟需要怎样的牧场才能产出好羊奶呢? 羊只对环境要求较…

web 应用常见的安全问题

一xss攻击 人们经常将跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。因此,有人将跨站脚本攻击缩写为XSS。 跨站脚本攻击&#xff…

nicegui 可视化扩展库

nicegui 可视化扩展库 使用代码代码解析教程地址使用代码 from nicegui import ui from niceguiToolkit.layout import inject_layout_tool # import扩展库inject_layout_tool() # 这句是关键with ui.card().classes(

华硕ASUS K43SD笔记本安装win7X64(ventoy为入口以支撑一盘多系统);友善之臂mini2440开发板学习

记录 老爷机 白色 华硕 K43SD 笔记本 安装 win7X64 1. MBR样式常规安装win7X64Sp1 (华硕 K43SD 安装 win7X64 ) 老爷机 白色 华硕 K43SD 笔记本 安装 win7X64 (常规安装) 设置: 禁用UEFI 启用AHCI ventoy制作MBR(非UEFI)方式的启动U盘 U盘中放cn_windows_7_ultimate_wit…

【Java-Util】Hutool工具类判断字符串、对象为空的使用

Hutool是一个Java工具类库,提供了许多常用的工具方法。下面介绍如何使用Hutool判断字符串和对象是否为空。 判断字符串是否为空 Hutool提供了StrUtil类来处理字符串相关的操作,包括判断字符串是否为空。示例如下: String str "Hello,…

C++从零开始的打怪升级之路(day21)

这是关于一个普通双非本科大一学生的C的学习记录贴 在此前,我学了一点点C语言还有简单的数据结构,如果有小伙伴想和我一起学习的,可以私信我交流分享学习资料 那么开启正题 今天分享的是关于vector的题目 1.删除有序数组中的重复项 26. …