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')
相关推荐
Kingfar_1几秒前
高速列车驾驶员情境意识动态建模及生理反应机制研究
人工智能·机器学习
多米Domi011几秒前
0x3f 第43天 黑马点评全量复习一遍 + 栈两题
开发语言·数据结构·python·算法·leetcode
小二·3 分钟前
Python Web 开发进阶实战:AI 原生硬件接口 —— 在 Flask + MicroPython 中构建边缘智能设备控制平台
前端·人工智能·python
TTGGGFF5 分钟前
深度实战:在 GPU 环境下一键部署 Jimeng 中文文生图交互系统
人工智能·交互·图片生成
集和诚JHCTECH8 分钟前
精准采摘背后的大脑:BRAV-7135边缘计算解决方案赋能智能农业新时代
人工智能·嵌入式硬件
deephub8 分钟前
用 PydanticAI 让 LLM 输出变成可信赖的 Python 对象
人工智能·python·大语言模型·agent
白小筠10 分钟前
迭代器与生成器
开发语言·python
带带弟弟学爬虫__11 分钟前
速通新Baidu Frida检测
前端·javascript·vue.js·python·网络爬虫
b20772111 分钟前
Flutter for OpenHarmony 身体健康状况记录App实战 - 运动分析实现
python·flutter·harmonyos
cooldream200912 分钟前
从辩论训练到具身智能——辩核AI具身辩论数字人系统整体设计思路
人工智能·具身数字人