我的数据框架中有一个列
city LondonParisNew York ..
我对该列进行了标签编码,它将0分配给London,1分配给Paris,2分配给New York。但是当我传递单个值进行模型预测时,城市名称New York被分配为0。如何保持一致?我希望如果在训练阶段标签编码器将New York的值分配为2,那么在预测时也应该分配2。
Codefrom sklearn.preprocessing import LabelEncoderlabelencoder=LabelEncoder()df['city']=labelencoder.fit_transform(df['city'])
回答:
你需要使用fit
或fit_transform
来拟合编码器,然后对你想要编码的数据使用transform
来获取标签(如果你对这些数据使用fit_transform
,它会重新拟合编码器,如果你只传递一个值,它会被编码为0):
df['label'] = labelencoder.fit_transform(df['city'])# df# city label# 0 London 0# 1 Paris 2# 2 New York 1
labelencoder.transform(['New York'])# array([1])