svm.SVR.predict() 的静态值

static value with svm.SVR.predict()

我试图评估一些基于 dataset (n * 6) 的预测的相关性,但我想知道我目前面临 奇怪 结果的原因 svr.SVR.predict。下面的代码可以说明我的陈述:

d = DataReader(...)
a = d.iloc[:,0:5]
b = d.iloc[:,5]
cut = 10
z = d.iloc[len(d.index) - cut :,0:5]

X,y = np.asarray(a[:-10]), np.asarray(b[:-10]) # train set
XT,yT = np.asarray(z), np.asarray(b[-10:]) # test set

clf = svm.SVR(kernel = 'rbf', gamma=0.1, C=1e3)
y_hat = clf.fit(X,y).predict(XT[i]) #, i = 0,1... 

对所有i产生惊人静态值,尽管XT[i]存在差异(Ps: XT[i].shape = (5,)).

简而言之,目标包括比较 y_hat vs yT.

最佳

您需要在 SVM 之前进行归一化。请尝试以下操作:

from sklearn.preprocessing import StandardScaler

d = DataReader(...)
a = d.iloc[:,0:5]
b = d.iloc[:,5]
cut = 10
z = d.iloc[len(d.index) - cut :,0:5]

X,y = np.asarray(a[:-10]), np.asarray(b[:-10]) # train set
XT,yT = np.asarray(z), np.asarray(b[-10:]) # test set

scl = StandardScaler()
X = scl.fit_transform(X)
XT = scl.transform(XT)

clf = svm.SVR(kernel = 'rbf', gamma=0.1, C=1e3)
y_hat = clf.fit(X,y).predict(XT[i]) #, i = 0,1...