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')
相关推荐
服务器硬件项目经理几秒前
第14篇_服务器主板上MOSFET的三大应用
运维·服务器·人工智能·单片机·硬件工程·硬件
SamChan90几秒前
Python批量处理PDF踩坑实录:中文编码、字体内嵌、多栏排版与内存占用
python·单片机·ai·pdf·机器翻译
weixin_446260855 分钟前
COBRA‑Skills:基于上下文赌博机引导进化的智能体技能优化框架
人工智能
3Q工具箱 - BraggTroy7 分钟前
Python + PyInstaller 实战:从零打造 10 个 Windows 桌面小工具(附全部踩坑记录与核心代码)
开发语言·windows·python
一航jason10 分钟前
大模型“上车“评估参数列表
人工智能·ai·aigc·ai编程·ai-native
七灵微12 分钟前
【AI】Agent 安全:Skill、Tool、MCP 与运行时权限
人工智能·安全·agent
Mr数据杨14 分钟前
电信客户流失预测实战 从 Kaggle 二分类赛题到留存预警建模
人工智能·数据分析·kaggle竞赛
j7~15 分钟前
【AI应用---白话大模型(篇九)】《一文看懂Agent:CLI 智能体、上下文窗口与大模型幻觉》---详解
人工智能·大模型幻觉·上下文窗口·cli智能体
爱学堂IT课程大全17 分钟前
零基础,Hermes Agent 多场景自动化实战
运维·人工智能·自动化
维基框架17 分钟前
PyTorch正在重构开源AI基础设施
人工智能·pytorch·重构