当OneHotEncoder遇上字符串类型的类别变量 ValueError:could not convert string to float

在对字符型的类别变量进行OneHotEncoder独热编码的时候,不懂大家有没有遇到过下面的问题

使用pandas中的get_dummies是可以编码的

但是用sklearn中的OneHotEncoder的时候,问题来了

会出现ValueError:could not convert string to float : 'white'  这个错误提示

一开始看到有些博文上说是因为导入的数据里面存在空格或者符号,处理掉就好了

但是这个数据是我自己打上去的,没有以上的问题

怎么办呢?搜了好久,看了很多博文还是没解决,耽误了不少时间

后面了解到OneHotEncoder是不能直接对字符串类型的文本变量进行编码的,要实现对字符串类型的类别变量进行独热编码还真得通过曲线救国的方式去做,方法如下:

先用 LabelEncoder() 转换成连续的数值型变量,再用 OneHotEncoder() 二值化

需要注意的是,OneHotEncoder() 要求输入的是 2-D array,所以在进行独热编码的时候要将特征矩阵转二维

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值