我有包含一个维度和一个类标签的数据。我想在上面运行KNN。

我的数据是这样的

feature       Label
0.70436073      1
0.91564351      1
0.9931506       1
2.26418779      0


我做了下面的事情,结果出错了。我从错误中了解到无法识别火车的数据类型,但是我不知道如何解决它。请帮忙

>>> train = [ 0.70436073,  0.91564351,  0.9931506,   2.26418779]
>>> train
[0.70436073, 0.91564351, 0.9931506, 2.26418779]
>>> label = ['1','1','1','0']
>>> from sklearn.neighbors import KNeighborsClassifier
>>> knn = KNeighborsClassifier()
>>> knn.fit(train, label)

Traceback (most recent call last):
  File "<pyshell#26>", line 1, in <module>
    knn.fit(train, label)
  File "C:\Python27\lib\site-packages\sklearn\neighbors\base.py", line 586, in fit
    return self._fit(X)
  File "C:\Python27\lib\site-packages\sklearn\neighbors\base.py", line 126, in _fit
    raise ValueError("data type not understood")
ValueError: data type not understood

最佳答案

好吧,错误消息很糟糕,您应该邮寄这些家伙并要求他们修复,但是无论如何... http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html#sklearn.neighbors.KNeighborsClassifier上的示例非常清楚:fit()的第一个参数是列表列表,而不是数字列表。此外,第二个参数必须是“整数值数组”,但是您已经编写了一个字符串数组。

关于python-2.7 - Python中的K近邻,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15729269/

10-12 21:36