時序預測 | 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