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