问题描述
我的数据框中有一列
city
London
Paris
New York
.
.
我对列进行标签编码,并将 0 分配给 London ,将 1 分配给 Paris ,将 2 分配给 New York 。但是当我为模型的预测传递单个值时,我给出了城市名称 New York 并将 0 分配给它。它将如何保持不变,我希望如果纽约值在训练阶段通过标签编码器分配 2,它应该在预测时再次分配 2。
Code
from sklearn.preprocessing import LabelEncoder
labelencoder=LabelEncoder()
df['city']=labelencoder.fit_transform(df['city'])
解决方法
您需要使用 fit
或 fit_transform
来拟合编码器,然后在要编码的数据上使用 transform
以获得标签(如果您在那个数据,它会重新拟合编码器,如果你只传递一个值,它会被编码为 0):
fit_transform
df['label'] = labelencoder.fit_transform(df['city'])
# df
# city label
# 0 London 0
# 1 Paris 2
# 2 New York 1