LabelEncoder和OrdinalEncoder的区别 - xd21303/Notebook GitHub Wiki

LabelEncoder()

这个看官方文档,一般是用于类别标签的,如果用于特征的话,默认并不是按照低、中、高这样的顺序进行编码的,也就是说,这个和上面那种for循环定义映射的那个一样,虽然成功的改成了数字,但是意义不在了。

所以人家官方文档才把这个函数的作用说成:

使用0到n_classes-1之间的值对目标标签进行编码。该转换器应用于编码目标值,即 y,而不是输入X。

所以这个函数,别乱用到特征的编码。

OrdinalEncoder()

将分类特征编码为整数数组。 该转换器的输入应为整数或字符串之类的数组,表示分类(离散)特征所采用的值。要素将转换为序数整数。这将导致每个要素的一列整数(0到n_categories-1)。

所以,这个才是真正的用到分类特征上的映射数字编码,并且还会保留原来的顺序。

看这个函数,把低,中,高分别编码成了0, 1, 2. 保留了原来的顺序。

所以这个函数编码中也是很好用的。

————————————————

版权声明:本文为CSDN博主「Miracle8070」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/wuzhongqiang/article/details/104169480