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...