独热编码的两种实现形式

简介: 独热编码的两种实现形式

独热编码的两种实现形式:

 OneHotEncoderDictVectorizer是两种常用的特征向量化方法,用于将分类特征转换为数值特征。但还是有一定的区别不管是再输入格式还是在输出类型上都有一些不同。

区别:

1. 输入格式要求:

o OneHotEncoder:接受二维数组或稀疏矩阵作为输入。需要先对分类特征进行编码为整数标签,然后再使用OneHotEncoder进行转换。

o DictVectorizer:接受字典列表或Pandas DataFrame作为输入。每个字典表示一个样本,键表示特征名称,值表示特征值。

1. 输出类型:

o OneHotEncoder:输出稀疏矩阵。对于大规模数据集和高维度特征,可以节省内存空间。

o DictVectorizer:输出稠密矩阵。对于小规模数据集和低维度特征,输出的是一个数组。

3.处理缺失值:

o OneHotEncoder:不直接处理缺失值,需要在进行编码之前对缺失值进行处理。

o DictVectorizer:可以通过设置sparse=False参数将缺失值编码为0或使用其他指定的值。

4.特征名称的处理:

o OneHotEncoder:不保留特征名称,只生成数值编码后的特征。

o DictVectorizer:保留特征名称,可以通过get_feature_names()方法获取特征名称。

基础铺垫:

 X.to_dict()这将返回一个字典,其中键是特征列的名称,值是特征列对应的 Series 对象。

image.png image.png

X.to_dict():

image.png X.to_dict(orient='records'):

image.png  

 X.values.tolist()这将返回特征矩阵 X 的值作为一个二维列表。每一行代表一个样本,每一列代表一个特征。这种方法将DataFrame转换为一个二维列表,可以方便地在某些情况下使用,例如一些需要输入列表形式的机器学习算法。 image.png image.png 独热编码实现:

方法一:
image.png image.png
方法二:

image.png image.png

总结:

总的来说,OneHotEncoder适用于处理整数标签编码的分类特征,输出稀疏矩阵,不处理缺失值,并且需要显式拟合和转换数据。DictVectorizer适用于处理字典格式或DataFrame格式的分类特征,输出稠密矩阵,可以处理缺失值,并且不需要显式拟合。选择哪种方法取决于数据的特点和使用的上下文。

 

目录
相关文章
|
7月前
|
JavaScript 数据安全/隐私保护
41 # 编码的问题
41 # 编码的问题
33 0
|
2月前
|
机器学习/深度学习 自然语言处理
向量的编码详解2
向量的编码详解2
18 1
|
2月前
|
机器学习/深度学习 存储 数据处理
矩阵编码
矩阵编码
12 0
|
5月前
|
机器学习/深度学习 数据处理 索引
Python下数值型与字符型类别变量独热编码(One-hot Encoding)实现
Python下数值型与字符型类别变量独热编码(One-hot Encoding)实现
|
JavaScript
编码
编码
68 0
|
机器学习/深度学习 数据采集 存储
对离散特征进行数据预处理:独热编码、标签编码及二值化
使用机器学习时,会存在不同的特征类型:连续型特征和离散型特征。 针对连续性特征,我们通常将其线性缩放到[-1, 1]区间或者缩放到均值为0,方差为1的范围。 但是,特征并不总是连续值,而有可能是分类值、离散值。因此,我们也需要对离散值进行特征编码数据预处理。
|
索引 Python
独热(One-Hot)编码简述
独热(One-Hot)编码简述
539 0
独热(One-Hot)编码简述
数制与编码
十进制整数转换为二进制数 可以将十进制数逐次用2除,取余数,一直到商为0.然后把全部余数按相反的次序排列起来。(除二取余)
256 0
数制与编码
|
机器学习/深度学习 算法 索引
关于Onehot编码的总结
关于Onehot编码的总结
536 0
关于Onehot编码的总结