【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期”即可获取下载方式。