sklearn OneHotEncoder broken- ValueError:无法将字符串转换为float

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sklearn OneHotEncoder broken- ValueError:无法将字符串转换为float相关的知识,希望对你有一定的参考价值。

我从sklearn OneHotEncoder纪录页面中获取了这个例子:

from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder(handle_unknown='ignore')
X = [['Male', 1], ['Female', 3], ['Female', 2]]
enc.fit(X)
enc.categories_

enc.transform([['Female', 1], ['Male', 4]]).toarray()

enc.inverse_transform([[0, 1, 1, 0, 0], [0, 0, 0, 1, 0]])

enc.get_feature_names()

我明白了:

ValueError:无法将字符串转换为float:'Male'。

当我用数字替换“男性”和“女性”:X = [['5', 1], ['4', 3], ['4', 2]]

我明白了:

AttributeError:'OneHotEncoder'对象没有属性'categories_'

我的sklearn版本是0.19.1有人可以重现这个吗?

答案

正如Vivek Kumar所说,0.19.1太老了。升级到0.20.1版解决了这个问题

以上是关于sklearn OneHotEncoder broken- ValueError:无法将字符串转换为float的主要内容,如果未能解决你的问题,请参考以下文章

如何在 sklearn 中使用 OneHotEncoder 的输出?

sklearn中的LabelEncoder和OneHotEncoder的区别

sklearn:无法使 OneHotEncoder 与 Pipeline 一起使用

onehotencoder 的 sklearn 掩码不起作用

在 sklearn 0.14 中使用 OneHotEncoder 指定要分类的选择特征

Sklearn:是不是可以在 OneHotEncoder 中为未知类别指定 null 或 NaN 值?