天天看點

時序預測 | MATLAB實作IWOA-BiLSTM和BiLSTM時間序列預測(改進的鲸魚算法優化雙向長短期記憶神經網絡)

時序預測 | MATLAB實作IWOA-BiLSTM和BiLSTM時間序列預測(改進的鲸魚算法優化雙向長短期記憶神經網絡)

目錄

    • 時序預測 | MATLAB實作IWOA-BiLSTM和BiLSTM時間序列預測(改進的鲸魚算法優化雙向長短期記憶神經網絡)
      • 預測效果
      • 基本介紹
      • 程式設計
      • 參考資料

預測效果

時序預測 | MATLAB實作IWOA-BiLSTM和BiLSTM時間序列預測(改進的鲸魚算法優化雙向長短期記憶神經網絡)
時序預測 | MATLAB實作IWOA-BiLSTM和BiLSTM時間序列預測(改進的鲸魚算法優化雙向長短期記憶神經網絡)
時序預測 | 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

繼續閱讀