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')
相关推荐
千里飞刀客3 分钟前
aruco位姿检测
人工智能·opencv·计算机视觉
二川bro6 分钟前
特征工程完全手册:2025 Python实战技巧
开发语言·python
浪子不回头41510 分钟前
AI机考-Transformers
人工智能
BAOYUCompany19 分钟前
暴雨AI服务器点燃AGI蓝海市场
人工智能
神一样的老师35 分钟前
Google学术搜索实验室:自然语言检索新体验
人工智能
居然JuRan43 分钟前
全量微调 vs LoRA:一篇文章彻底搞懂参数高效微调
人工智能
EQ-雪梨蛋花汤1 小时前
【AI工具】使用 Doubao-Seed-Code 优化 Unity 编辑器插件:从功能实现到界面美化的完整实践
人工智能·unity·编辑器
量子位1 小时前
马斯克开始用Grok替代员工了!最惨部门裁员90%
人工智能·grok
用户2345267009821 小时前
Python实现异步任务队列深度好文
后端·python
夫唯不争,故无尤也1 小时前
PyTorch 的维度变形一站式入门
人工智能·pytorch·python