【MATLAB第78期】基于MATLAB的VMD-SSA-LSTM麻雀算法优化LSTM时间序列预测模型

【MATLAB第78期】基于MATLAB的VMD-SSA-LSTM麻雀算法优化LSTM时间序列预测模型

一、LSTM

data = xlsread('数据集.xlsx');%
[x,y]=data_process(data,15);%15个时刻 预测下一个时刻
%归一化
[xs,mappingx]=mapminmax(x',0,1);x=xs';
[ys,mappingy]=mapminmax(y',0,1);y=ys';
%划分数据
n=size(x,1);
m=round(n*0.7);%70%训练,对最后30%进行预测
options = trainingOptions('adam', ...
    'MaxEpochs',35, ...
    'ExecutionEnvironment' ,'cpu',...
    'GradientThreshold',1, ...
    'InitialLearnRate',0.001, ...
    'LearnRateSchedule','piecewise', ...
    'LearnRateDropPeriod',30, ...
    'LearnRateDropFactor',0.2, ...%指定初始学习率 0.005,在 125 轮训练后通过乘以因子 0.2 来降低学习率
    'L2Regularization',0.0001,...
    'Verbose',0);

单一的LSTM预测
…………………………………………………………………………………………………………………………
训练集误差指标:
根均方差(RMSE):0.021219
平均绝对误差(MAE):0.016203
平均相对百分误差(MAPE):2.7615%

测试集误差指标:
根均方差(RMSE):0.024491
平均绝对误差(MAE):0.019084
平均相对百分误差(MAPE):3.2038%

在这里插入图片描述

二、VMD-LSTM

在这里插入图片描述
VMD-LSTM预测
…………………………………………………………………………………………………………………………
第1个分量建模
第2个分量建模
第3个分量建模
第4个分量建模
第5个分量建模
第6个分量建模
第7个分量建模
第8个分量建模
第9个分量建模
训练集误差指标:
根均方差(RMSE):0.019865
平均绝对误差(MAE):0.014202
平均相对百分误差(MAPE):2.3709%

测试集误差指标:
根均方差(RMSE):0.01275
平均绝对误差(MAE):0.011012
平均相对百分误差(MAPE):1.8442%

在这里插入图片描述

三、VMD-SSA-LSTM

pop=5; % 麻雀数量
Max_iteration=5; % 最大迭代次数
dim=3; % 优化lstm的3个参数
lb = [40,40,0.001];%下边界
ub = [200,200,0.03];%上边界

最优隐藏单元数目为 144
最优最大训练周期为 150
最优初始学习率为 0.012689
最优L2正则化系数为 149.8417

训练集误差指标:
根均方差(RMSE):0.005728
平均绝对误差(MAE):0.0044444
平均相对百分误差(MAPE):0.77018%

测试集误差指标:
根均方差(RMSE):0.005453
平均绝对误差(MAE):0.004349
平均相对百分误差(MAPE):0.74173%
在这里插入图片描述

四、代码获取

CSDN私信回复“第78期”即可获取下载方式。

猜你喜欢

转载自blog.csdn.net/qq_29736627/article/details/133365502