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')
相关推荐
GIOTTO情1 分钟前
媒介投放智能化转型:Infoseek 基于 AI 大模型的全链路技术实现
人工智能
Guheyunyi6 分钟前
电气安全管理系统:架构、技术与智能预警体系
大数据·人工智能·科技·安全·架构
Coding茶水间6 分钟前
基于深度学习的交通事故检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
人工智能·深度学习·yolo·目标检测·机器学习
双翌视觉10 分钟前
机器视觉引导如何实现机械手的动态抓取
人工智能·数码相机
zstar-_10 分钟前
YOLO26已正式发布
人工智能
刘晓倩11 分钟前
Python内置函数-hasattr()
前端·javascript·python
逆境清醒14 分钟前
Python中的常量
开发语言·python·青少年编程
SEO_juper19 分钟前
精准控制爬虫抓取:Robots.txt 核心配置解析与常见避坑指南
人工智能·爬虫·seo·数字营销
友思特 智能感知25 分钟前
友思特案例 | 金属行业视觉检测案例一:彩涂钢板卷对卷检测
人工智能·计算机视觉·视觉检测·缺陷检测
Mixtral26 分钟前
2026年4款面试记录工具测评:从录音到结构化复盘
人工智能·面试·职场和发展·语音识别·语音转文字