为了账号安全,请及时绑定邮箱和手机立即绑定

使用 SVR 进行时间序列预测

使用 SVR 进行时间序列预测

三国纷争 2021-09-23 09:15:23
我有一个时间序列,我想用它xt来预测xt + 1. 我正在使用 sklearn 的支持向量回归,但我无法理解我在预测中发生这种转变时做错了什么。这是我的代码和结果(在图像中)。bts_sup = timeseries_to_supervised(bts,1)bts_sup = bts_sup.iloc[1:,:]   # delete the line because x0 don't have antecedanttrain, test = split_data(bts_sup)# sacling datascaler_in = MinMaxScaler()  #  for inputsscaler_out = MinMaxScaler()  # for outputsX_train = scaler_in.fit_transform(train[:,0].reshape(-1,1))y_train = scaler_out.fit_transform(train[:,1].reshape(-1,1))X_test = scaler_in.transform(test[:,0].reshape(-1,1))y_test = scaler_out.transform(test[:,1].reshape(-1,1))param_grid = {"C": np.linspace(10**(-2),10**3,100),             'gamma': np.linspace(0.0001,1,20)}mod = SVR(epsilon = 0.1,kernel='rbf')model = GridSearchCV(estimator = mod, param_grid = param_grid,                                   scoring = "neg_mean_squared_error",verbose = 0)best_model = model.fit(X_train, y_train.ravel())#predictionpredicted_tr = model.predict(X_train)predicted_te = model.predict(X_test)# inverse_transform because prediction is done on scaled inputspredicted_tr = scaler_out.inverse_transform(predicted_tr.reshape(-1,1))predicted_te = scaler_out.inverse_transform(predicted_te.reshape(-1,1))#plotforcast = np.concatenate((predicted_tr,predicted_te))real = np.concatenate((train[:,1],test[:,1]))plt.plot(real, color = 'blue', label = 'Real Erlangs')plt.plot(forcast,"--", linewidth=2,color = 'red', label = 'Predicted Erlangs')plt.title('Erlangs Prediction--'+data_set.columns[choice])plt.xlabel('Time')plt.ylabel('Erlangs')plt.legend()plt.show()#errorprint("MSE: ", mse(real,forcast), " R2: ", r2_score(real,forcast))print(best_model.best_params_)
查看完整描述

1 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

根据我的观察,该模型预测了一个接近前一个时间段的值,该值已作为输入数据给出。当x_t低时可以观察到小的方差,x_t+1当 x_t 是高值时,模型预测为略高和相反的情况。

这似乎是模型的最佳猜测,只有一个滞后特征。

改进的方法可以是添加额外的特征 5-10 个滞后,并让模型学习模式贯穿始终。

对于更复杂的模型,如果 SVM 不起作用,您可以尝试使用 RNN 进行预测。


查看完整回答
反对 回复 2021-09-23
  • 1 回答
  • 0 关注
  • 1135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号