我正在尝试在一些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。
任何帮助都会很受欢迎。
答案 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])