Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python sklearn OneHotEncoder已断开-值错误:无法将字符串转换为浮点_Python_Scikit Learn - Fatal编程技术网

Python sklearn OneHotEncoder已断开-值错误:无法将字符串转换为浮点

Python sklearn OneHotEncoder已断开-值错误:无法将字符串转换为浮点,python,scikit-learn,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]])

我从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:无法将字符串转换为浮点:“男性”

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

我得到:

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

我的sklearn版本是0.19.1
有人能复制这个吗?

正如维韦克·库马尔(Vivek Kumar)所说,0.19.1太旧了。
升级到版本0.20.1解决了问题

您使用的是旧版本,其中OneHotEncoder无法直接将字符串转换为一个热编码功能,并且您似乎正在按照教程学习最新的功能。您需要先使用LabelEncoder。或者升级您的scikit learn,然后使用OneHotEncoder。尝试先使用LabelEconder,然后对其应用一个热编码result@VivekKumar你是对的。升级到0.20.1后,它可以工作。我没想到他们改变了OneHotEncoder接口。但是非常感谢你。