sklearn的LabelEncoder 遇到新值的解决办法

server/2025/1/15 22:06:38/

问题:sklearn的LabelEncoder函数遇到新值报错

sklearn的LabelEncoder函数,在fit结束后,对dataframe数据进行transform的时候,如果遇到了没在fit时编码规则里的新值,会出现代码报错,不同于spark的LabelEncoder碰到新值会给你编成len+1。

解决办法:基于编码规则的修改

1、保存编码字典

from sklearn.preprocessing import LabelEncoderle = 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')


http://www.ppmy.cn/server/2392.html

相关文章

TCP断开连接为什么需要4次挥手?

一、断开连接过程 由于TCP连接是全双工的,因此每个方向都必须单独关闭。客户端在数据发送完毕后发送一个结束数据段FIN,且服务端也返回确认数据段ACK,此时结束了客户端到服务端的连接;然后客户端接收到服务端发送的FIN&#xff0c…

如何快速打开Github

为什么我们打开Github速度很慢?很卡,甚至于访问不了,原因是中间有个域名通过DNS解析的过程,将域名解析为对应的ip地址,主要时间都是花在了DNS解析上了。 我们在浏览器输入 GitHub 的网址时,会向 DNS 服务器…

抓包工具篇

文章目录 文章内容主要包含抓包原理及常见抓包工具简介,如何选取符合自身日常工作要求的抓包软件。Charles、Fiddler、HttpAnalyzer、WireShark工具及Firefox浏览器,PC和移动端常用抓包和篡改请求操作讲解,各抓包软件在使用过程中实例操作和…

免费SSL证书和付费SSL证书的区别和申请

免费SSL证书和付费SSL证书的区别点还是比较多的。对来说免费证书适用的环境会单一一些,一般使用免费证书的环境都是个人门户网站或者是小微企业的门户官网(无隐私信息)。受免费证书安全等级以及安全性的限制影响,如果是为了自身网…

.NetCore——自定义筛选器

【异常筛选器】 在 ASP.NET Core Web API 中,异常处理是一个非常重要的环节,如果程序中出现未处理异常,就会生成响应报文。通过捕获和处理异常,我们可以确保应用程序的健壮性,并向用户提供友好的错误响应。ASP.NET Core 提供了一种机制,即异常筛选器(Exception Filters…

SQL优化——成本计算

文章目录 1、优化SQL需要看COST吗2、全表扫描成本计算3、索引范围扫描成本计算4、SQL优化核心思想 1、优化SQL需要看COST吗 很多人在做SQL优化的时候都会去看Cost。很多人经常问:为什么Cost很小,但是SQL就是跑很久不出结果呢?在这里告诉大家…

软考128-上午题-【软件工程】-白盒测试

一、白盒测试(结构测试) 白盒测试也称为结构测试,根据程序的内部结构和逻辑来设计测试用例,对程序的路径和过程进行测试,检查是否满足设计的需要。 白盒测试常用的技术是:逻辑覆盖、循环覆盖和基本路径测…

SRS服务接入华为云CDN

一、srs配置 正常的标准配置即可,需打开hls推流即可,一般配置中默认打开 二、华为云cdn配置 1.登录华为云,找内容分发网络cdn 2.点击域名管理,点击添加域名 3.配置加速域名 4.选择点播加速 5.添加源站 配置源站地址&#xf…