Label Encoder如何分配相同的数字?
How does Label Encoder assigns the same number?
我的数据框中有该列
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
在您要编码的数据上获得标签(如果您这样做 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])
我的数据框中有该列
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
在您要编码的数据上获得标签(如果您这样做 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])