python - 标签编码器如何分配相同的数字?
问题描述
我的数据框中有该列
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])
推荐阅读
- gdb - gdb 可以打印全局变量的历史吗?
- javascript - AWS SDK - 如何创建一个 lambda 函数以从用户池中列出组?
- r - 尝试为 NLP 生成频率不会产生真正的错误
- typescript - 打字稿通用索引类型
- javascript - javascript 小书签可以从 excel 或 CSV 文件中读取吗
- r - 如何使用 unicode 箭头导出高分辨率 ggplot 图形
- python - 在 Python 中记录到文件
- reactjs - 如何监控 Firestore 中的管理员访问权限?
- teamcity - 有没有办法在 TeamCity 中查看模板列表?
- python - 无头时如何使美丽的汤4工作?