區(qū)間預(yù)測 | Matlab實現(xiàn)CNN-BiLSTM-KDE的卷積雙向長短期神經(jīng)網(wǎng)絡(luò)結(jié)合核密度估計多變量時序區(qū)間預(yù)測
效果一覽
基本介紹
1.CNN-BiLSTM-KDE多變量時間序列區(qū)間預(yù)測,基于卷積雙向長短期記憶神經(jīng)網(wǎng)絡(luò)多變量時序區(qū)間預(yù)測,卷積雙向長短期記憶神經(jīng)網(wǎng)絡(luò)的核密度估計下置信區(qū)間預(yù)測。
2.含點預(yù)測圖、置信區(qū)間預(yù)測圖、核密度估計圖,區(qū)間預(yù)測(區(qū)間覆蓋率PICP、區(qū)間平均寬度百分比PINAW),點預(yù)測多指標(biāo)輸出(R2、MAE、MAPE、MBE、 MSE),多輸入單輸出。
3.運(yùn)行環(huán)境為Matlab2021b及以上;
4.輸入多個特征,輸出單個變量,考慮歷史特征的影響,多變量時間序列區(qū)間預(yù)測;
5.data為數(shù)據(jù)集,main.m為主程序,運(yùn)行即可,所有文件放在一個文件夾。
累積分布函數(shù)(CDF)
估計誤差小于實際誤差:估計累計誤差分布的大小小于實際累計誤差分布的大小。說明在誤差估計方法對系統(tǒng)的噪聲或者不確定性進(jìn)行了較好的建模,并且能夠?qū)φ`差進(jìn)行較為準(zhǔn)確的預(yù)測。文章來源:http://www.zghlxwxcb.cn/news/detail-782815.html
程序設(shè)計
- 完整程序和數(shù)據(jù)獲取方式:私信博主回復(fù)Matlab實現(xiàn)CNN-BiLSTM-KDE的卷積雙向長短期神經(jīng)網(wǎng)絡(luò)結(jié)合核密度估計多變量時序區(qū)間預(yù)測。
%% 參數(shù)設(shè)置
options = trainingOptions('adam', ... % Adam 梯度下降算法
'MaxEpochs', 100,... % 最大訓(xùn)練次數(shù)
'MiniBatchSize',64,... % 批處理
'InitialLearnRate', 0.001,... % 初始學(xué)習(xí)率為0.001
'L2Regularization', 0.001,... % L2正則化參數(shù)
'LearnRateSchedule', 'piecewise',... % 學(xué)習(xí)率下降
'LearnRateDropFactor', 0.1,... % 學(xué)習(xí)率下降因子 0.1
'LearnRateDropPeriod', 400,... % 經(jīng)過800次訓(xùn)練后 學(xué)習(xí)率為 0.001*0.1
'Shuffle', 'every-epoch',... % 每次訓(xùn)練打亂數(shù)據(jù)集
'ValidationPatience', Inf,... % 關(guān)閉驗證
'Plots', 'training-progress',... % 畫出曲線
'Verbose', false);
%% 訓(xùn)練
net = trainNetwork(p_train, t_train, lgraph, options);
%% 預(yù)測
t_sim1 = predict(net, p_train);
t_sim2 = predict(net, p_test );
%% 數(shù)據(jù)反歸一化
T_sim1 = mapminmax('reverse', t_sim1, ps_output);
T_sim2 = mapminmax('reverse', t_sim2, ps_output);
T_sim1 =T_sim1';
T_sim2 =T_sim2';
%% 均方根誤差
error1 = sqrt(sum((T_sim1 - T_train).^2) ./ M);
error2 = sqrt(sum((T_sim2 - T_test ).^2) ./ N);
% 可視化估計的密度函數(shù)
figure;
subplot(2,1,1);
histfit(train_errors,100,'kernel', 'Normalization', 'probability')
legend('誤差分布');
xlabel('誤差');
ylabel('頻數(shù)');
title('誤差分布曲線');
subplot(2,1,2);
xlabel('誤差');
ylabel('概率密度');
legend('估計密度');
title('核密度估計曲線');
% 累積分布函數(shù)(CDF)
% 估計誤差小于實際誤差:估計累計誤差分布的大小小于實際累計誤差分布的大小。
% 這種情況可能出現(xiàn)在誤差估計方法對系統(tǒng)的噪聲或者不確定性進(jìn)行了較好的建模,并且能夠?qū)φ`差進(jìn)行較為準(zhǔn)確的預(yù)測。
figure;
cdfplot(train_errors);
hold on;
title('累積分布函數(shù) (CDF) 比較');
xlabel('誤差');
ylabel('累積概率');
legend('實際誤差累積分布函數(shù)CDF', '估計誤差累積分布函數(shù)CDF');
% 計算累積分布函數(shù)(CDF)
cdf_train = cumsum(f_train) * (x_train(2) - x_train(1));
參考資料
[1] https://blog.csdn.net/kjm13182345320/article/details/127931217
[2] https://blog.csdn.net/kjm13182345320/article/details/127418340文章來源地址http://www.zghlxwxcb.cn/news/detail-782815.html
到了這里,關(guān)于區(qū)間預(yù)測 | Matlab實現(xiàn)CNN-BiLSTM-KDE的卷積雙向長短期神經(jīng)網(wǎng)絡(luò)結(jié)合核密度估計多變量時序區(qū)間預(yù)測的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!