KNeighborsClassifier的未知y_type

时间:2017-07-12 17:38:22

标签: machine-learning scikit-learn

我正在尝试在一些numpy数组上运行KNeighborClassifier并且我一直收到错误ValueError: Unknown label type: 'unknown'

我的X_matrix和我的y_vector的类型都是 <class 'numpy.ndarray'>和两个相应的形状是

(46, 240) (46,)

X_matrix和y_vector都只包含整数。 y_vector只包含1和0。

任何帮助都会很受欢迎。

2 个答案:

答案 0 :(得分:0)

当您将label(y)数据传递给KNeighborClassifier classifier.fit(X_matrix ,y_vector)时,它希望y_vector为1D列表。

y_vector=list(y_vector.values)

答案 1 :(得分:0)

您需要检查numpy数组的形状:

示例

import numpy as np
from sklearn.neighbors import KNeighborsClassifier

y = np.array( [0,1,0,1,0] )
x=np.array( [ [2.3,5.3,6.8,9,10],[1,2,3,4,5] ] )
x=x.reshape(5,2)

clf=KNeighborsClassifier()
clf.fit(x,y)

# check type and shape
type(x)
x.shape
type(y)
y.shape

结果:

<type 'numpy.ndarray'>

<type 'numpy.ndarray'>

(5L, 2L)

(5L,)

如果你想使用合适的clf进行预测:

x_new = np.array( [10, 20] )
x_new = x_new.reshape(1,2)
clf.predict(x_new)

结果:

array([0])