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')
相关推荐
iFlow_AI5 小时前
iFlow CLI快速搭建Flutter应用记录
开发语言·前端·人工智能·flutter·ai·iflow·iflow cli
落羽的落羽5 小时前
【Linux系统】解明进程优先级与切换调度O(1)算法
linux·服务器·c++·人工智能·学习·算法·机器学习
2501_941807266 小时前
可持续发展与绿色科技的未来:从创新到实践
大数据·人工智能·物联网
小王毕业啦6 小时前
1999-2023年 地级市-数字经济综合发展指数
大数据·人工智能·数据挖掘·数据分析·数据统计·社科数据·实证数据
ZhengEnCi6 小时前
P3H0-Python-os模块完全指南-操作系统接口与文件路径处理利器
python·操作系统
红尘炼丹客6 小时前
简析金融领域的“量化”和“量化交易”
人工智能·金融
草莓熊Lotso6 小时前
Git 本地操作进阶:版本回退、撤销修改与文件删除全攻略
java·javascript·c++·人工智能·git·python·网络协议
Mintopia6 小时前
🌟 Gemini 3.0 Pro:Google 的「多模态巨灵」新篇章
人工智能·gemini·trae
Mintopia6 小时前
🌐 跨平台 WebAIGC 适配:当 AI 遇上屏幕尺寸差异的爱恨情仇
人工智能·aigc·trae
想看一次满天星6 小时前
阿里140-语雀逆向分析
javascript·爬虫·python·语雀·阿里140