时序预测 | MATLAB实现IWOA-BiLSTM和BiLSTM时间序列预测(改进的鲸鱼算法优化双向长短期记忆神经网络)
目录
- 时序预测 | MATLAB实现IWOA-BiLSTM和BiLSTM时间序列预测(改进的鲸鱼算法优化双向长短期记忆神经网络)
- 预测效果
- 基本介绍
- 程序设计
- 参考资料
预测效果
基本介绍
MATLAB实现IWOA-BiLSTM和BiLSTM时间序列预测(改进的鲸鱼算法优化双向长短期记忆神经网络)
算法的基本步骤如下:
步骤1:实验数据分为训练集和测试集.
步骤2:把BiLSTM模型中学习率、训练次数、正则化率、神经网络隐藏层单元数目作为优化对象,初始化IWOA算法.
步骤3:计算每个个体的适应度值.以各鲸鱼对应参数构建BiLSTM神经网络模型,通过训练数据进行训练,测试数据进行预测,将预测结果的平均绝对百分比误差作为各鲸鱼的适应度值.
步骤4:根据鲸鱼的适应度值确定全局最优位置和局部最优位置.
步骤5:根据WOA算法式更新A和C.
步骤6:根据WOA算法的对鲸鱼的位置进行更新;
步骤7:判断终止条件.若满足终止条件,则输出最优解;否则,返回步骤3.
步骤8:用最优参数构建BiLSTM神经网络模型并进行预测.
程序设计
- 完整程序私信博主。
%% 搭建BiLSTM模型
inputSize = 1;
numHiddenUnits = 100;
layers = [ ...
sequenceInputLayer(inputSize)
bilstmLayer(numHiddenUnits,'OutputMode','last')
bilstmLayer(numHiddenUnits-30)
bilstmLayer(numHiddenUnits-60)
fullyConnectedLayer(1)
regressionLayer]
options = trainingOptions('adam',...
'InitialLearnRate',1e-3,...% 学习率
'MiniBatchSize', 8, ...
'MaxEpochs',50, ...
'Plots','training-progress');
[net1,info1] = trainNetwork(TF,output_train',layers,options);
参考资料
[1] Mirjalili S,Lewis A. The whale optimization algorithm[J]. Advancesin Engineering Software,2016,95( 5) : 51-67.
[2] https://blog.csdn.net/article/details/126086399?spm=1001.2014.3001.5501