幫你做海報網(wǎng)站寧波網(wǎng)絡(luò)建站模板
區(qū)間預(yù)測 | Matlab實現(xiàn)LSTM-ABKDE長短期記憶神經(jīng)網(wǎng)絡(luò)自適應(yīng)帶寬核密度估計多變量回歸區(qū)間預(yù)測
目錄
- 區(qū)間預(yù)測 | Matlab實現(xiàn)LSTM-ABKDE長短期記憶神經(jīng)網(wǎng)絡(luò)自適應(yīng)帶寬核密度估計多變量回歸區(qū)間預(yù)測
- 效果一覽
- 基本介紹
- 程序設(shè)計
- 參考資料
效果一覽
基本介紹
1.Matlab實現(xiàn)LSTM-ABKDE長短期記憶神經(jīng)網(wǎng)絡(luò)結(jié)合自適應(yīng)帶寬核函數(shù)密度估計的多變量回歸區(qū)間預(yù)測(完整源碼和數(shù)據(jù))
2.LSTM-ABKDE的長短期記憶神經(jīng)網(wǎng)絡(luò)結(jié)合自適應(yīng)帶寬核函數(shù)密度估計的多變量回歸區(qū)間預(yù)測(點預(yù)測+概率預(yù)測+核密度估計) Matlab語言
3.多變量單輸出,包括點預(yù)測+概率預(yù)測+核密度估計曲線,MatlabR2021a及以上版本運行,提供多種置信區(qū)間!評價指標(biāo)包括R2、MAE、RMSE、MAPE、區(qū)間覆蓋率picp、區(qū)間平均寬度百分比pinaw等。
4.算法新穎,對固定帶寬核函數(shù)進(jìn)行了改進(jìn)。
5.直接替換Excel數(shù)據(jù)即可用,注釋清晰,適合新手小白,直接運行main文件一鍵出圖。
6.代碼特點:參數(shù)化編程、參數(shù)可方便更改、代碼編程思路清晰、注釋明細(xì)。
程序設(shè)計
- 完整程序和數(shù)據(jù)獲取方式私信博主回復(fù)Matlab實現(xiàn)LSTM-ABKDE長短期記憶神經(jīng)網(wǎng)絡(luò)自適應(yīng)帶寬核密度估計多變量回歸區(qū)間預(yù)測。
%% 清空環(huán)境變量
warning off % 關(guān)閉報警信息
close all % 關(guān)閉開啟的圖窗
clear % 清空變量
clc % 清空命令行%% 導(dǎo)入數(shù)據(jù)
res = xlsread('data.xlsx');%% 數(shù)據(jù)分析
num_size = 0.7; % 訓(xùn)練集占數(shù)據(jù)集比例
outdim = 1; % 最后一列為輸出
num_samples = size(res, 1); % 樣本個數(shù)
%res = res(randperm(num_samples), :); % 打亂數(shù)據(jù)集(不希望打亂時,注釋該行)
num_train_s = round(num_size * num_samples); % 訓(xùn)練集樣本個數(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);%% 數(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);%% 數(shù)據(jù)平鋪
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' ;%% 數(shù)據(jù)格式轉(zhuǎn)換
for i = 1 : Mp_train{i, 1} = P_train(:, :, 1, i);
endfor i = 1 : Np_test{i, 1} = P_test( :, :, 1, i);
end%% 創(chuàng)建模型
layers = [sequenceInputLayer(f_) % 建立輸入層lstmLayer(f_*2+1, 'OutputMode', 'last') % LSTM層reluLayer % Relu激活層fullyConnectedLayer(1) % 全連接層regressionLayer]; % 回歸層%% 參數(shù)設(shè)置
options = trainingOptions('adam', ... % Adam 梯度下降算法'MaxEpochs', 100, ... % 最大訓(xùn)練次數(shù) 'InitialLearnRate', 0.01, ... % 初始學(xué)習(xí)率為0.01'LearnRateSchedule', 'piecewise', ... % 學(xué)習(xí)率下降'LearnRateDropFactor', 0.1, ... % 學(xué)習(xí)率下降因子 0.1'LearnRateDropPeriod', 70, ... % 經(jīng)過訓(xùn)練后 學(xué)習(xí)率為 0.01*0.1'Shuffle', 'every-epoch', ... % 每次訓(xùn)練打亂數(shù)據(jù)集'Verbose', 1);
參考資料
[1] https://blog.csdn.net/kjm13182345320/article/details/127931217
[2] https://blog.csdn.net/kjm13182345320/article/details/127418340