2017-07-12 21 views
0

我想對一些numpy的陣列運行KNeighborClassifier,我一直得到錯誤ValueError: Unknown label type: 'unknown'未知y_type爲KNeighborsClassifier

類型我X_matrix和我y_vector都是 <class 'numpy.ndarray'>和兩個respectivley形狀是

(46, 240) (46,)

無論是X_matrix和y_vector只包含整數。 y_vector只包含1和0。

任何幫助將偉利讚賞。

+0

你應該張貼錯誤的完整堆棧跟蹤。 'y'中有什麼樣的值。 –

回答

0

當您將標籤(y)數據傳遞給KNeighborClassifier classifier.fit(X_matrix ,y_vector)時,它預計y_vector爲1D列表。

y_vector=list(y_vector.values) 
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])