时序预测 | MATLAB实现IWOA-BiLSTM和BiLSTM时间序列预测(改进的鲸鱼算法优化双向长短期记忆神经网络)

时序预测 | MATLAB实现IWOA-BiLSTM和BiLSTM时间序列预测(改进的鲸鱼算法优化双向长短期记忆神经网络)

预测效果

12

3

4

基本介绍

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

猜你喜欢

转载自blog.csdn.net/kjm13182345320/article/details/129336446
今日推荐