我一直在使用SVR来预测时间序列的值。我的数据集分为两个,即训练和测试,并使用SVR和RBF内核来预测测试数据集。虽然SVR已经完美地建模了列车数据集,但始终预测测试数据集的平均值。
一直尝试使用StandardScaller,Normalization等但总是失败。
这是我的代码
X = np.array(x).reshape(-1,1)
Y = np.array(y).reshape(-1,1)
sc_y = StandardScaler()
Y = sc_y.fit_transform(Y)
Y = np.array(Y).ravel()
# Fit regression model
X_train, X_test, Y_train, Y_test = train_test_split(X, Y,
test_size=0.4, random_state=0, shuffle=False)
from sklearn.model_selection import cross_val_score
svr_rbf = SVR(kernel='rbf', C=10, gamma=9.9999999999999995e-08, epsilon=0.1)
print(X_train.shape)
svr_rbf.fit(X_train, Y_train)
y_rbf = svr_rbf.predict(X_train)
y_rbf1 = svr_rbf.predict(X_test)
这是我的结果
预测结束时会显示一个常数值。
你知道我该怎么做才能使预测更好吗?