推广网站的软件如何查询网站接入商
【MATLAB第81期】基于MATLAB的LSTM长短期记忆网络预测模型时间滞后解决思路(更新中)
在LSTM预测过程中,极易出现时间滞后,类似于下图,与一个以上的样本点结果错位,产生滞后的效果。
 
 在建模过程中,输入与输出之间关系的建立,周期性样本选择以及数据处理方式等都会产生影响。
影响因素讨论:
 ①数据预处理方式
 ②数据输入输出关系构造
二、案例分析——训练集测试集拟合:
1、数据情况
一列数据:
 2007-2023年月度数据,168*1
 
2、多输入多输出(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为:6.753
 验证集数据的MAE为:15.8771
 训练集数据的RMSE为:12.0964
 验证集数据的RMSE为:19.5052
 训练集数据的MSE为:146.3234
 验证集数据的MSE为:380.4535
 训练集数据的R2为:0.97525
 测试集数据的R2为:0.92702
(2)训练集和测试集整体标准化处理(SJCL3)
XTrain= dataStandardized (1:M-1,:);% 训练输入
 YTrain = dataStandardized(2:M,:);% 训练输出
 XTest = dataStandardized(1:N-1,:)%测试输入 0代表训练输入末位数据
 YTest = dataStandardized(2:N,:);%测试输出
训练集拟合情况:
 
测试集拟合情况:
 
训练集数据的MAE为:5.0941
 验证集数据的MAE为:12.6767
 训练集数据的RMSE为:7.9809
 验证集数据的RMSE为:16.9913
 训练集数据的MSE为:63.6942
 验证集数据的MSE为:288.7044
 训练集数据的R2为:0.98875
 测试集数据的R2为:0.947
(3)训练集和测试集单独归一化处理(SJCL5)
XTrain= dataTrainNormalization(1:M-1,:);% 训练输入
 YTrain = dataTrainNormalization(2:M,:);% 训练输出
 XTest = dataTestNormalization(1:N-1,:)%测试输入 0代表训练输入末位数据
 YTest = dataTestNormalization(2:N,:);%测试输出
3、多输入多输出(M输入,M输出)
(1)训练集和测试集单独标准化处理(SJCL2)
XTrain= dataTrainStandardized (1:M,:);% 训练输入
 YTrain = dataTrainStandardized(2:M+1,:);% 训练输出
 XTest = dataTestStandardized(0:N-1,:)%测试输入 0代表训练输入末位数据
 YTest = dataTestStandardized(1:N,:);%测试输出
训练集拟合情况:
 
 测试集拟合情况:
 
训练集数据的MAE为:29.8318
 验证集数据的MAE为:26.5024
 训练集数据的RMSE为:57.9399
 验证集数据的RMSE为:41.4219
 训练集数据的MSE为:3357.0305
 验证集数据的MSE为:1715.7726
 训练集数据的R2为:0.48215
 测试集数据的R2为:0.7138
(2)训练集和测试集单独标准化处理(SJCL4)
XTrain= dataStandardized (1:M,:);% 训练输入
 YTrain = dataStandardized(2:M+1,:);% 训练输出
 XTest = dataStandardized(0:N-1,:)%测试输入 0代表训练输入末位数据
 YTest = dataStandardized(1:N,:);%测试输出
训练集拟合情况:
 
 测试集拟合情况:
 
 训练集数据的MAE为:29.8668
 验证集数据的MAE为:23.625
 训练集数据的RMSE为:59.1022
 验证集数据的RMSE为:50.4366
 训练集数据的MSE为:3493.0708
 验证集数据的MSE为:2543.8486
 训练集数据的R2为:0.48001
 测试集数据的R2为:0.6037
6、多输入多输出(训练集和测试集单独归一化处理)
XTrain= dataStandardized (1:M,:);% 训练输入
 YTrain = dataStandardized(2:M+1,:);% 训练输出
 XTest = dataStandardized(0:N-1,:)%测试输入 0代表训练输入末位数据
 YTest = dataStandardized(1:N,:);%测试输出
训练集拟合情况:

测试集拟合情况:
 
 预测未来12个月:
 
2、数据集构造(训练集和测试集单独标准化处理)
XTrain= dataTrainStandardized (1:M-1,:);% 训练输入
 YTrain = dataTrainStandardized(2:M,:);% 训练输出
 XTest = dataTestStandardized(0:N,:)%测试输入 0代表训练输入末位数据
 YTest = dataTestStandardized(1:N,:);%测试输出
LSTM优化后:
 LSTM训练集拟合效果:

 测试集拟合效果:

 LSTM预测未来12个月:
 
