我在[-1 , 1]
范围内有一些输入数据,并且在[ 0, 1]
范围内输出数据。当我使用SMV回归预测输出时 我有预测的输出值在1到1之间。 丢失的?代码是:
svr=svm.SVR(C=0.1, gamma=0.01,kernel='rbf')
y_rbf =svr.fit(TrainingIn,TrainingOut)
y_hat=svr.predict(TestIn)
谢谢!
在此处给定信息,不可能重建您的问题。我很确定,这与数据的预处理/缩放有关。一个示例段以使SVR
运行可能看起来像这样(可以随意适应您的需求):
from sklearn.svm import SVR
from sklearn.datasets import load_boston
from sklearn.preprocessing import StandardScaler
from sklearn.cross_validation import train_test_split
from sklearn.metrics import mean_squared_error
# replace this parth with your data, e.g. TrainingIn/TrainingOut
boston = load_boston()
X, y = boston.data, boston.target
X1, X2, y1, y2 = train_test_split(X, y)
svr = SVR(C=80)
scaler = StandardScaler()
svr.fit(scaler.fit_transform(X1), y1)
y_pred = svr.predict(scaler.transform(X2))
print mean_squared_error(y2, y_pred)
仅保留此答案以供将来参考(它不会直接回答PSAN的问题)。
重要的是要注意,sklearn.svm.SVR
可以用作预测因子和分类器。如果馈列的标记数据,predict
将输出 { - 1, 1} 。