多輸入多輸出 | Matlab實現BO-GRU貝葉斯優化門控循環單元多輸入多輸出預測
目錄
- 多輸入多輸出 | Matlab實現BO-GRU貝葉斯優化門控循環單元多輸入多輸出預測
- 預測效果
- 基本介紹
- 程序設計
- 參考資料
預測效果
基本介紹
Matlab實現BO-GRU貝葉斯優化門控循環單元多輸入多輸出預測(完整源碼和數據)
1.data為數據集,輸入10個特征,輸出3個變量。
2.main.m為程序主文件,其他為函數文件無需運行。
3.命令窗口輸出MBE、MAE、RMSE、R^2和MAPE,可在下載區獲取數據和程序內容。
4.優化參數為學習率、隱藏層單元數和正則化參數。
注意程序和數據放在一個文件夾,運行環境為Matlab2020及以上。
程序設計
- 完整源碼和數據獲取方式:私信博主回復Matlab實現BO-GRU貝葉斯優化門控循環單元多輸入多輸出預測。
%% 數據平鋪
% 將數據平鋪成1維數據只是一種處理方式
% 也可以平鋪成2維數據,以及3維數據,需要修改對應模型結構
% 但是應該始終和輸入層數據結構保持一致
p_train = double(reshape(P_train, 10, 1, 1, M));
p_test = double(reshape(P_test , 10, 1, 1, N));
t_train = double(T_train)';
t_test = double(T_test )';
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------%% 參數設置
options = trainingOptions('adam', ... % ADAM 梯度下降算法'MiniBatchSize', 30, ... % 批大小,每次訓練樣本個數30'MaxEpochs', 100, ... % 最大訓練次數 100'InitialLearnRate', 1e-2, ... % 初始學習率為0.01'LearnRateSchedule', 'piecewise', ... % 學習率下降'LearnRateDropFactor', 0.5, ... % 學習率下降因子'LearnRateDropPeriod', 50, ... % 經過100次訓練后 學習率為 0.01 * 0.5'Shuffle', 'every-epoch', ... % 每次訓練打亂數據集'Plots', 'training-progress', ... % 畫出曲線'Verbose', false);
參考資料
[1] https://blog.csdn.net/kjm13182345320/category_11003178.html?spm=1001.2014.3001.5482
[2] https://blog.csdn.net/kjm13182345320/article/details/117378431
[3] https://blog.csdn.net/kjm13182345320/article/details/118253644