sklearn的LabelEncoder 遇到新值的解决办法

问题:sklearn的LabelEncoder函数遇到新值报错

sklearn的LabelEncoder函数,在fit结束后,对dataframe数据进行transform的时候,如果遇到了没在fit时编码规则里的新值,会出现代码报错,不同于spark的LabelEncoder碰到新值会给你编成len+1。

解决办法:基于编码规则的修改

1、保存编码字典

复制代码
from sklearn.preprocessing import LabelEncoder

le = preprocessing.LabelEncoder()
le.fit(X)

# label编码其实就是映射的字典,将编码字典保存
le_dict = dict(zip(le.classes_, le.transform(le.classes_)))

2、数据判断

检索单个新项目的标签,如果项目丢失,则将值设置为未知

复制代码
le_dict.get(new_item, 'Unknown')

3、批量检索 Dataframe 列的标签

复制代码
df['col'] = df['col'].apply(lambda x: le_dict.get(x, 'Unknown'))

# 再将新值删除
df = df[df['col'] != 'Unknown']
df['col'] = df['col'].astype(dtype='int64')
相关推荐
Coder_Boy_29 分钟前
AI技术栈入门-Spring AI+小程序-ESP32智能控制系统
人工智能·spring·小程序
说私域30 分钟前
“智能名片链动2+1模式S2B2C商城小程序”在群运营中的应用与效果
人工智能·小程序·开源
BoBoZz1930 分钟前
CapClip 模型的裁剪(平面裁剪与曲线裁剪)
python·vtk·图形渲染·图形处理
围炉聊科技31 分钟前
Vibe Coding实战从零开发小程序:AI协作的惊喜与踩坑
人工智能·小程序
啊吧怪不啊吧32 分钟前
初识Langchain之AI语言大模型
人工智能·语言模型·langchain
草莓熊Lotso33 分钟前
Makefile 完全指南:从入门到工程化,自动化构建不再难
linux·运维·服务器·人工智能·经验分享·后端·自动化
Niuguangshuo34 分钟前
生成对抗网络(GAN):从博弈到创造的艺术
人工智能·神经网络·生成对抗网络
小二·34 分钟前
AI工程化实战《四》:多模态 RAG 全解——让 AI 看懂 PDF 表格、扫描件与流程图
人工智能·pdf·流程图
热爱生活的五柒35 分钟前
深度聚类(Deep Clustering)与度量学习(Metric Learning)的共同点和不同点
人工智能·算法·机器学习
玖日大大37 分钟前
Sora 2 全面指南:从基础使用到进阶开发的 AI 视频创作宝典
人工智能