我在sklearn中使用SVR运行了一些数据
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} )
但是控制台返回:
ValueError: bad input shape (4576, 5)
,其中train_X
和train_y
未能获得clf.fit()
我的数据形状看起来像
print (train_X.shape)
(4576, 8)
print (train_y.shape)
(4576, 5)
在这种情况下,模型似乎从train_y获取了5而不是4576
我看了文档,上面写着:
y : array-like, shape (n_samples,)
Target values (class labels in classification, real numbers in regression)
这是否意味着模型SVR只接受y的一列?p -实际上我的y值最初是一列,有离散的5类。我只把它们做成5列的dummy
当我将这个数据集应用到不同的模型时,这种情况经常发生。如果有人能回答我的问题,我将不胜感激。
是的,SVR只接受有一列的y,您应该重塑您的y:
train_y.shape=(train_y.shape[0]*train_y.shape[1],1)