SCI一區級 | Matlab實現BO-Transformer-BiLSTM時間序列預測
目錄
- SCI一區級 | Matlab實現BO-Transformer-BiLSTM時間序列預測
- 效果一覽
- 基本介紹
- 程序設計
- 參考資料
效果一覽
基本介紹
1.【SCI一區級】Matlab實現BO-Transformer-BiLSTM時間序列預測,貝葉斯優化Transformer結合BiLSTM雙向長短期記憶神經網絡時間序列預測,BO-Transformer-BiLSTM/Bayes-Transformer-BiLSTM(程序可以作為SCI一區級論文代碼支撐,目前尚未發表)。
2.貝葉斯優化參數為:學習率,BiLSTM隱含層節點,正則化參數,運行環境為Matlab2023b及以上;
3.data為數據集,輸入輸出單個變量,一維時間序列預測,main.m為主程序,運行即可,所有文件放在一個文件夾;
4.命令窗口輸出R2、MSE、RMSE、MAE、MAPE、MBE等多指標評價;
程序設計
- 完整程序和數據下載私信博主回復Matlab實現BO-Transformer-LSTM時間序列預測。
%% 清空環境變量
warning off % 關閉報警信息
close all % 關閉開啟的圖窗
clear % 清空變量
clc % 清空命令行%% 導入數據
result = xlsread('data.xlsx');%% 數據分析%% 劃分訓練集和測試集
P_train = res(1: num_train_s, 1: f_)';
T_train = res(1: num_train_s, f_ + 1: end)';
M = size(P_train, 2);P_test = res(num_train_s + 1: end, 1: f_)';
T_test = res(num_train_s + 1: end, f_ + 1: end)';
N = size(P_test, 2);%% 數據歸一化
[P_train, ps_input] = mapminmax(P_train, 0, 1);
P_test = mapminmax('apply', P_test, ps_input);[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);%% 數據平鋪
P_train = double(reshape(P_train, f_, 1, 1, M));
P_test = double(reshape(P_test , f_, 1, 1, N));t_train = t_train';
t_test = t_test' ;%% 數據格式轉換
for i = 1 : Mp_train{i, 1} = P_train(:, :, 1, i);
endfor i = 1 : Np_test{i, 1} = P_test( :, :, 1, i);
end%% 創建待優化函數
ObjFcn = @BOFunction;%% 貝葉斯優化參數范圍
optimVars = [
參考資料
[1] https://blog.csdn.net/kjm13182345320/article/details/128163536?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/kjm13182345320/article/details/128151206?spm=1001.2014.3001.5502