我希望能够确定sklearn LabelEncoder的标签(即0,1,2,3等)以适应分类变量可能值的特定顺序(比如 ['b', 'a', 'c', 'd'])。正如在以下示例中所示,LabelEncoder 选择按字典序拟合标签:
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
le.fit(['b', 'a', 'c', 'd' ])
le.classes_
array(['a', 'b', 'c', 'd'], dtype='<U1')
le.transform(['a', 'b'])
array([0, 1])
我该如何强制编码器按照在.fit方法中首先遇到的数据顺序进行编码(即将'b'编码为0,将'a'编码为1,将'c'编码为2,将'd'编码为3)?
OrdinalEncoder
,它在 https://github.com/scikit-learn-contrib/categorical-encoding 和 http://contrib.scikit-learn.org/categorical-encoding/ordinal.html 中有详细描述。 - dgumo