區(qū)間預(yù)測(cè) | MATLAB實(shí)現(xiàn)QRGRU門控循環(huán)單元分位數(shù)回歸時(shí)間序列區(qū)間預(yù)測(cè)
效果一覽
基本介紹
MATLAB實(shí)現(xiàn)QRGRU門控循環(huán)單元分位數(shù)回歸時(shí)間序列區(qū)間預(yù)測(cè)?;诜治粩?shù)回歸的門控循環(huán)單元QRGRU的時(shí)間序列區(qū)間預(yù)測(cè),多輸入單輸出模型 (Matlab完整程序和數(shù)據(jù))
(主要應(yīng)用于風(fēng)速,負(fù)荷,功率)(Matlab完整程序和數(shù)據(jù))
運(yùn)行環(huán)境matlab2020及以上,輸入多個(gè)特征,輸出單個(gè)變量。
excel數(shù)據(jù),方便學(xué)習(xí)和替換數(shù)據(jù)。
模型描述
分位數(shù)回歸是簡(jiǎn)單的回歸,就像普通的最小二乘法一樣,但不是最小化平方誤差的總和,而是最小化從所選分位數(shù)切點(diǎn)產(chǎn)生的絕對(duì)誤差之和。如果 q=0.50(中位數(shù)),那么分位數(shù)回歸會(huì)出現(xiàn)一個(gè)特殊情況 - 最小絕對(duì)誤差(因?yàn)橹形粩?shù)是中心分位數(shù))。我們可以通過調(diào)整超參數(shù) q,選擇一個(gè)適合平衡特定于需要解決問題的誤報(bào)和漏報(bào)的閾值。GRU 有兩個(gè)有兩個(gè)門,即一個(gè)重置門(reset gate)和一個(gè)更新門(update gate)。從直觀上來說,重置門決定了如何將新的輸入信息與前面的記憶相結(jié)合,更新門定義了前面記憶保存到當(dāng)前時(shí)間步的量。如果我們將重置門設(shè)置為 1,更新門設(shè)置為 0,那么我們將再次獲得標(biāo)準(zhǔn) RNN 模型。文章來源:http://www.zghlxwxcb.cn/news/detail-653057.html
程序設(shè)計(jì)
- 完整程序和數(shù)據(jù)獲取方式(資源處下載):MATLAB實(shí)現(xiàn)QRGRU門控循環(huán)單元分位數(shù)回歸時(shí)間序列區(qū)間預(yù)測(cè)
% gru
layers = [ ...
sequenceInputLayer(inputSize,'name','input') %輸入層設(shè)置
gruLayer(numhidden_units1,'Outputmode','sequence','name','hidden1')
dropoutLayer(0.3,'name','dropout_1')
gruLayer(numhidden_units2,'Outputmode','last','name','hidden2')
dropoutLayer(0.3,'name','drdiopout_2')
fullyConnectedLayer(outputSize,'name','fullconnect') % 全連接層設(shè)置(影響輸出維度)(cell層出來的輸出層) %
quanRegressionLayer('out',i)];
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
% 參數(shù)設(shè)定
opts = trainingOptions('adam', ...
'MaxEpochs',10, ...
'GradientThreshold',1,...
'ExecutionEnvironment','cpu',...
'InitialLearnRate',0.001, ...
'LearnRateSchedule','piecewise', ...
'LearnRateDropPeriod',2, ... %2個(gè)epoch后學(xué)習(xí)率更新
'LearnRateDropFactor',0.5, ...
'Shuffle','once',... % 時(shí)間序列長(zhǎng)度
'SequenceLength',1,...
'MiniBatchSize',24,...
'Verbose',0);
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%
% 網(wǎng)絡(luò)訓(xùn)練
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
y = Test.demand;
x = Test{:,3:end};
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
% 歸一化
[xnorm,xopt] = mapminmax(x',0,1);
xnorm = mat2cell(xnorm,size(xnorm,1),ones(1,size(xnorm,2)));
[ynorm,yopt] = mapminmax(y',0,1);
ynorm = ynorm';
% 平滑層
flattenLayer('Name','flatten')
% GRU特征學(xué)習(xí)
gruLayer(50,'Name','gru1','RecurrentWeightsInitializer','He','InputWeightsInitializer','He')
% GRU輸出
gruLayer(NumOfUnits,'OutputMode',"last",'Name','bil4','RecurrentWeightsInitializer','He','InputWeightsInitializer','He')
dropoutLayer(0.25,'Name','drop3')
% 全連接層
fullyConnectedLayer(numResponses,'Name','fc')
regressionLayer('Name','output') ];
layers = layerGraph(layers);
layers = connectLayers(layers,'fold/miniBatchSize','unfold/miniBatchSize');
————————————————
版權(quán)聲明:本文為CSDN博主「機(jī)器學(xué)習(xí)之心」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/kjm13182345320/article/details/130447132
參考資料
[1] https://blog.csdn.net/kjm13182345320/article/details/127931217
[2] https://blog.csdn.net/kjm13182345320/article/details/127418340
[3] https://blog.csdn.net/kjm13182345320/article/details/127380096文章來源地址http://www.zghlxwxcb.cn/news/detail-653057.html
到了這里,關(guān)于區(qū)間預(yù)測(cè) | MATLAB實(shí)現(xiàn)QRGRU門控循環(huán)單元分位數(shù)回歸時(shí)間序列區(qū)間預(yù)測(cè)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!