我正在尝试使用以下方法进行序数编码:
from sklearn.preprocessing import OrdinalEncoder
我将尝试用一个简单的数据集来解释我的问题。
X = pd.DataFrame({'animals':['low','med','low','high','low','high']})
enc = OrdinalEncoder()
enc.fit_transform(X.loc[:,['animals']])
array([[1.],
[2.],
[1.],
[0.],
[1.],
[0.]])
它按字母顺序标记,但如果我尝试:
enc = OrdinalEncoder(categories=['low','med','high'])
enc.fit_transform(X.loc[:,['animals']])
Shape mismatch: if n_values is an array, it has to be of shape (n_features,).
我不明白。我希望能够决定如何进行标记。
我考虑过这样做:
level_mapping={'low':0,'med':1,'high':2}
X['animals']=data['animals'].replace(level_mapping)
但是,我的数据集中有大量具有相似类别的特征。
谢谢。