当前位置:   article > 正文

【MATLAB第81期】基于MATLAB的LSTM长短期记忆网络预测模型时间滞后解决思路

【MATLAB第81期】基于MATLAB的LSTM长短期记忆网络预测模型时间滞后解决思路

【MATLAB第81期】基于MATLAB的LSTM长短期记忆网络预测模型时间滞后解决思路(更新中)

LSTM预测过程中,极易出现时间滞后,类似于下图,与一个以上的样本点结果错位,产生滞后的效果。
在这里插入图片描述
在建模过程中,输入与输出之间关系的建立,周期性样本选择以及数据处理方式等都会产生影响。

影响因素讨论:
①数据预处理方式
②数据输入输出关系构造

二、案例分析——训练集测试集拟合:

(一)数据情况

一列数据:
2007-2023年月度数据,168*1
在这里插入图片描述

(二)标准化处理方法


1、多输入多输出(M-1输入,M-1输出)

(1)训练集和测试集单独标准化处理(SJCL1)

XTrain= dataTrainStandardized (1:M-1,:);% 训练输入
YTrain = dataTrainStandardized(2:M,:);% 训练输出
XTest = dataTestStandardized(1:N-1,:)%测试输入 0代表训练输入末位数据
YTest = dataTestStandardized(2:N,:);%测试输出

训练集拟合情况:
在这里插入图片描述
测试集拟合情况:
在这里插入图片描述
训练集数据的MAE为:4.9346
验证集数据的MAE为:12.1283
训练集数据的RMSE为:7.2346
验证集数据的RMSE为:15.4624
训练集数据的MSE为:52.3391
验证集数据的MSE为:239.0871
训练集数据的R2为:0.99104
测试集数据的R2为:0.95488
在这里插入图片描述

(2)训练集和测试集整体标准化处理(SJCL2)

XTrain= dataStandardized (1:M-1,:);% 训练输入
YTrain = dataStandardized(2:M,:);% 训练输出
XTest = dataStandardized(1:N-1,:)%测试输入 0代表训练输入末位数据
YTest = dataStandardized(2:N,:);%测试输出

训练集拟合情况:
在这里插入图片描述

测试集拟合情况:
在这里插入图片描述

训练集数据的MAE为:4.8058
验证集数据的MAE为:11.3867
训练集数据的RMSE为:7.563
验证集数据的RMSE为:16.5215
训练集数据的MSE为:57.1995
验证集数据的MSE为:272.9589
训练集数据的R2为:0.99058
测试集数据的R2为:0.94798
在这里插入图片描述

2、多输入多输出(M输入,M输出)

(1)训练集和测试集单独标准化处理(SJCL3)

XTrain= dataTrainStandardized (1:M,:);% 训练输入
YTrain = dataTrainStandardized(2:M+1,:);% 训练输出
XTest = dataTestStandardized(0:N-1,:)%测试输入 0代表训练输入末位数据
YTest = dataTestStandardized(1:N,:);%测试输出

训练集拟合情况:
在这里插入图片描述
测试集拟合情况:
在这里插入图片描述

训练集数据的MAE为:26.4327
验证集数据的MAE为:31.4711
训练集数据的RMSE为:52.3477
验证集数据的RMSE为:48.8094
训练集数据的MSE为:2740.2869
验证集数据的MSE为:2382.3562
训练集数据的R2为:0.54542
测试集数据的R2为:0.59188

在这里插入图片描述

(2)训练集和测试集整体标准化处理(SJCL4)

XTrain= dataStandardized (1:M,:);% 训练输入
YTrain = dataStandardized(2:M+1,:);% 训练输出
XTest = dataStandardized(0:N-1,:)%测试输入 0代表训练输入末位数据
YTest = dataStandardized(1:N,:);%测试输出

训练集拟合情况:
在这里插入图片描述
测试集拟合情况:
在这里插入图片描述
训练集数据的MAE为:31.2798
验证集数据的MAE为:26.7638
训练集数据的RMSE为:58.9467
验证集数据的RMSE为:48.7116
训练集数据的MSE为:3474.7153
验证集数据的MSE为:2372.8232
训练集数据的R2为:0.47397
测试集数据的R2为:0.61137
在这里插入图片描述

(三)归一化处理方法


1、多输入多输出(M-1输入,M-1输出)

(1)训练集和测试集单独归一化处理(SJCL5)

XTrain= datatrain (1:M,:);% 训练输入
YTrain = datatrain(2:M+1,:);% 训练输出
XTest = datatest(0:N-1,:)%测试输入 0代表训练输入末位数据
YTest = datatest(1:N,:);%测试输出

训练集拟合情况:

在这里插入图片描述
测试集拟合情况:
在这里插入图片描述
训练集数据的MAE为:9.768
验证集数据的MAE为:19.1894
训练集数据的RMSE为:16.5325
验证集数据的RMSE为:24.8666
训练集数据的MSE为:273.3234
验证集数据的MSE为:618.3487
训练集数据的R2为:0.95144
测试集数据的R2为:0.91046
在这里插入图片描述

(2)训练集和测试集整体归一化处理(SJCL6)

XTrain= data (1:M,:);% 训练输入
YTrain = data(2:M+1,:);% 训练输出
XTest = data(0:N-1,:)%测试输入 0代表训练输入末位数据
YTest = data(1:N,:);%测试输出

训练集拟合情况:
在这里插入图片描述
测试集拟合情况:
在这里插入图片描述
训练集数据的MAE为:11.4993
验证集数据的MAE为:20.4641
训练集数据的RMSE为:16.3479
验证集数据的RMSE为:26.8719
训练集数据的MSE为:267.2527
验证集数据的MSE为:722.1008
训练集数据的R2为:0.95597
测试集数据的R2为:0.86382
在这里插入图片描述

2、多输入多输出(M输入,M输出)

(1)训练集和测试集单独归一化处理(SJCL7)

XTrain= dataTrain(1:M,:);% 训练输入
YTrain = dataTrain(2:M+1,:);% 训练输出
XTest = dataTest(0:N-1,:)%测试输入 0代表训练输入末位数据
YTest = dataTest(1:N,:);%测试输出

训练集拟合情况:
在这里插入图片描述
测试集拟合情况:
在这里插入图片描述
训练集数据的MAE为:29.1313
验证集数据的MAE为:30.0087
训练集数据的RMSE为:52.2808
验证集数据的RMSE为:34.6128
训练集数据的MSE为:2733.2783
验证集数据的MSE为:1198.0471
训练集数据的R2为:0.56558
测试集数据的R2为:0.77137
在这里插入图片描述

(2)训练集和测试集整体归一化处理(SJCL8)

XTrain= data(1:M,:);% 训练输入
YTrain = data(2:M+1,:);% 训练输出
XTest = data(0:N-1,:)%测试输入 0代表训练输入末位数据
YTest = data(1:N,:);%测试输出

训练集拟合情况:
在这里插入图片描述
测试集拟合情况:
在这里插入图片描述

训练集数据的MAE为:32.5748
验证集数据的MAE为:48.165
训练集数据的RMSE为:59.1064
验证集数据的RMSE为:53.9113
训练集数据的MSE为:3493.5696
验证集数据的MSE为:2906.4263
训练集数据的R2为:0.46714
测试集数据的R2为:0.5361
在这里插入图片描述

三、分析总结

1、预测精度影响因素排序

数据构造方式>数据预处理方法>训练集测试集处理方式

(1)训练集和测试集单独标准化处理(M-1输入,M-1输出)
(2)训练集和测试集整体标准化处理(M-1输入,M-1输出)
(3)训练集和测试集单独归一化处理(M-1输入,M-1输出)
(4)训练集和测试集整体归一化处理(M-1输入,M-1输出)
(5)训练集和测试集单独归一化处理(M输入,M输出)
(6)训练集和测试集单独标准化处理(M输入,M输出)
(7)训练集和测试集整体标准化处理(M输入,M输出)
(8)训练集和测试集整体归一化处理(M输入,M输出)

M-1输入,M-1输出数据构造方式优于M输入,M输出数据构造方式;
M-1输入,M-1输出数据构造方式下,标准化处理方法略优于归一化处理方式;
训练集和测试集单独预处理方式优于整体预处理再分配方式。

2、预测未来结果合理性排序

(1)训练集和测试集单独标准化处理(M-1输入,M-1输出)
(2)训练集和测试集整体归一化处理(M-1输入,M-1输出)
(3)训练集和测试集单独标准化处理(M输入,M输出)
(4)训练集和测试集整体归一化处理(M输入,M输出)

3、拟合曲线合理性排序(不含时间滞后问题)

(1)训练集和测试集单独标准化处理(M-1输入,M-1输出)
(2)训练集和测试集整体归一化处理(M-1输入,M-1输出)
(3)训练集和测试集单独归一化处理(M-1输入,M-1输出)
(4)训练集和测试集整体归一化处理(M-1输入,M-1输出)

4、综合排序

(1)训练集和测试集单独标准化处理(M-1输入,M-1输出)
(2)训练集和测试集整体归一化处理(M-1输入,M-1输出)

5、结论

所以在处理LSTM时间序列问题时,优先选用合适的数据构造方式,即M-1输入,M-1输出方法,也就是滑动窗口参数数值尽可能大一些;其次,选择标准化处理方式时,需要将训练集和测试集分开标准化,若选择归一化方式时,需要先对整体数据进行归一,保留整体数据的曲线规律。

四、验证

选用常用时间序列案例数据,仅对结论推荐的两种方法进行验证。

在这里插入图片描述

(1)训练集和测试集单独标准化处理(M-1输入,M-1输出)

训练集测试集拟合情况:
训练集数据的MAE为:0.0064591
验证集数据的MAE为:0.0077951
训练集数据的RMSE为:0.0091793
验证集数据的RMSE为:0.01087
训练集数据的MSE为:8.4259e-05
验证集数据的MSE为:0.00011815
训练集数据的R2为:0.99254
测试集数据的R2为:0.95962在这里插入图片描述

预测结果情况(预测未来5年):
在这里插入图片描述

(2)训练集和测试集整体归一化处理(M-1输入,M-1输出)

训练集测试集拟合情况:
训练集数据的MAE为:0.0096015
验证集数据的MAE为:0.012188
训练集数据的RMSE为:0.013497
验证集数据的RMSE为:0.015197
训练集数据的MSE为:0.00018218
验证集数据的MSE为:0.00023096
训练集数据的R2为:0.98481
测试集数据的R2为:0.92719
在这里插入图片描述
预测结果情况(预测未来5年):
在这里插入图片描述
综上,采用第一种方法更为合适 。

五、代码获取

1.阅读首页置顶文章
2.关注CSDN
3.根据自动回复消息,回复“81期”以及相应指令,即可获取对应下载方式。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/465672
推荐阅读
相关标签
  

闽ICP备14008679号