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

时间:2018-11-26 08:58:38

标签: python scikit-learn

我从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:“男性”。

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

我明白了:

  

AttributeError:“ OneHotEncoder”对象没有属性“ categories _”

我的sklearn版本是0.19.1 有人可以复制吗?

1 个答案:

答案 0 :(得分:2)

正如Vivek Kumar所说的0.19.1太旧了。 升级到0.20.1版本可以解决问题