沈陽房地產(chǎn)網(wǎng)站開發(fā)西點(diǎn)培訓(xùn)班一般要多少學(xué)費(fèi)
多維時(shí)序 | Matlab實(shí)現(xiàn)CNN-BiLSTM-Mutilhead-Attention卷積雙向長短期記憶神經(jīng)網(wǎng)絡(luò)融合多頭注意力機(jī)制多變量時(shí)間序列預(yù)測
目錄
- 多維時(shí)序 | Matlab實(shí)現(xiàn)CNN-BiLSTM-Mutilhead-Attention卷積雙向長短期記憶神經(jīng)網(wǎng)絡(luò)融合多頭注意力機(jī)制多變量時(shí)間序列預(yù)測
- 效果一覽
- 基本介紹
- 程序設(shè)計(jì)
- 參考資料
效果一覽
基本介紹
Matlab實(shí)現(xiàn)CNN-BiLSTM-Mutilhead-Attention卷積雙向長短期記憶神經(jīng)網(wǎng)絡(luò)融合多頭注意力機(jī)制多變量時(shí)間序列預(yù)測
1.data為數(shù)據(jù)集,格式為excel,4個(gè)輸入特征,1個(gè)輸出特征,考慮歷史特征的影響,多變量時(shí)間序列預(yù)測;
2.main.m為主程序文件,運(yùn)行即可;
3.命令窗口輸出R2、MAE、MAPE、MSE和MBE,可在下載區(qū)獲取數(shù)據(jù)和程序內(nèi)容;
注意程序和數(shù)據(jù)放在一個(gè)文件夾,運(yùn)行環(huán)境為Matlab2023a及以上。
CNN卷積核大小:卷積核大小決定了CNN網(wǎng)絡(luò)的感受野,即每個(gè)卷積層可以捕獲的特征的空間范圍。選擇不同大小的卷積核可以影響模型的特征提取能力。較小的卷積核可以捕獲更細(xì)粒度的特征,而較大的卷積核可以捕獲更宏觀的特征。
BiLSTM神經(jīng)元個(gè)數(shù):BiLSTM是一種適用于序列數(shù)據(jù)的循環(huán)神經(jīng)網(wǎng)絡(luò),其神經(jīng)元個(gè)數(shù)決定了模型的復(fù)雜性和記憶能力。較多的BiLSTM神經(jīng)元可以提高模型的學(xué)習(xí)能力,但可能導(dǎo)致過擬合。
多頭自注意力層 (Multihead-Self-Attention):Multihead-Self-Attention多頭注意力機(jī)制是一種用于模型關(guān)注輸入序列中不同位置相關(guān)性的機(jī)制。它通過計(jì)算每個(gè)位置與其他位置之間的注意力權(quán)重,進(jìn)而對輸入序列進(jìn)行加權(quán)求和。注意力能夠幫助模型在處理序列數(shù)據(jù)時(shí),對不同位置的信息進(jìn)行適當(dāng)?shù)募訖?quán),從而更好地捕捉序列中的關(guān)鍵信息。在時(shí)序預(yù)測任務(wù)中,注意力機(jī)制可以用于對序列中不同時(shí)間步之間的相關(guān)性進(jìn)行建模。
程序設(shè)計(jì)
- 完整源碼和數(shù)據(jù)獲取方式私信回復(fù)Matlab實(shí)現(xiàn)CNN-BiLSTM-Mutilhead-Attention卷積雙向長短期記憶神經(jīng)網(wǎng)絡(luò)融合多頭注意力機(jī)制多變量時(shí)間序列預(yù)測。
%% 清空環(huán)境變量
warning off % 關(guān)閉報(bào)警信息
close all % 關(guān)閉開啟的圖窗
clear % 清空變量
clc % 清空命令行%% 導(dǎo)入數(shù)據(jù)
res =xlsread('data.xlsx','sheet1','A2:H104');%% 數(shù)據(jù)分析
num_size = 0.7; % 訓(xùn)練集占數(shù)據(jù)集比例num_train_s = round(num_size * num_samples); % 訓(xùn)練集樣本個(gè)數(shù)
f_ = size(res, 2) - outdim; % 輸入特征維度%% 劃分訓(xùn)練集和測試集
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);f_ = size(P_train, 1); % 輸入特征維度%% 數(shù)據(jù)歸一化
[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);
參考資料
[1] https://blog.csdn.net/kjm13182345320/article/details/129215161
[2] https://blog.csdn.net/kjm13182345320/article/details/128105718