Numpy 使用svm.SVR.predict()的静态值

Numpy 使用svm.SVR.predict()的静态值,numpy,scikit-learn,svm,python-3.5,Numpy,Scikit Learn,Svm,Python 3.5,我试图评估一些基于数据集(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.asarr

我试图评估一些基于
数据集(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... 
尽管
XT[i]
(Ps:
XT[i].shape=(5,)
)存在差异,但所有
i
的静态值都惊人

简言之,目标包括比较
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... 

您需要在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...