TypeError: fit_transform() takes 2 positional arguments but 3 were given的解决办法

在使用ColumnTransformer处理数据时,错误地应用LabelEncoder导致TypeError。LabelEncoder适用于一维目标变量编码,而非多维特征。错误源于fit_transform()函数参数不匹配。解决方案包括使用OrdinalEncoder或OneHotEncoder进行类别特征转换。官方文档推荐在处理多列类别特征时使用OneHotEncoder。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
今天在用ColumnTransformer方法对数值变量和非数值变量进行合成转换的时候,掌柜选择对其中的类别特征用LabelEncoder()方法,结果出现报错如上👆。但是换成OneHotEncoder(独热编码)就成功运行。

于是疑惑 为什么会出现这样的情况? 一搜发现Stackoverflow上面也有同样疑问的朋友,结合两位答主回答:
在这里插入图片描述
在这里插入图片描述

发现两个主要的原因为什么不适合用LabelEncoder():

  • 因为LabelEncoder()的transformer是用来编码目标变量(y)(可参见官方文档)(感觉蛮多人误用了这个方法。。。也包括掌柜我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值