2016-08-22 37 views
0

我在sklearn跑了SVR一些數據在python sklearn中做一些機器學習模型只接受y中的單個特徵?

from sklearn.svm import SVR 
clf = SVR() 
clf = clf.fit(train_X, train_y) 
y_score3 = clf.predict(test_X) 
predict3 = roc_auc_score(test_y, y_score3) 
print ("SVR : %(first)s" % {'first':predict3}) 

但是,控制檯retuns:

ValueError: bad input shape (4576, 5) 

其中train_Xtrain_y未能獲得clf.fit()

我的形狀的數據看起來像

print (train_X.shape) 
(4576, 8) 

print (train_y.shape) 
(4576, 5) 

好像模型取5,而不是4576從train_y在這種情況下

我讀了documentation,它寫道:

y : array-like, shape (n_samples,) 
Target values (class labels in classification, real numbers in regression) 

這是否意味着,該模型SVR只能有一列接受ÿ ? ps-實際上,我的y值最初是一列,離散的5個類。我只讓他們成爲5列的假人。

當我將這個數據集應用到不同的模型時,會發生這種情況。 如果有人能夠很好地回答我的問題,我們將非常感激。

+2

HMH,文檔是很清楚的:如果你想要做一個分類,你給大小爲n的矢量= 4576個班級標籤。 – cel

回答

0

是的,SVR只接受y隨一列,你應該重塑你Y:

train_y.shape=(train_y.shape[0]*train_y.shape[1],1)