圖書館 網(wǎng)站建設2022拉人頭最暴利的app
區(qū)間預測 | MATLAB實現(xiàn)QRGRU門控循環(huán)單元分位數(shù)回歸時間序列區(qū)間預測
目錄
- 區(qū)間預測 | MATLAB實現(xiàn)QRGRU門控循環(huán)單元分位數(shù)回歸時間序列區(qū)間預測
- 效果一覽
- 基本介紹
- 模型描述
- 程序設計
- 參考資料
效果一覽
基本介紹
MATLAB實現(xiàn)QRGRU門控循環(huán)單元分位數(shù)回歸分位數(shù)回歸多輸入單輸出區(qū)間預測?;诜治粩?shù)回歸的門控循環(huán)單元QRGRU的數(shù)據(jù)回歸區(qū)間預測,多輸入單輸出模型 (Matlab完整程序和數(shù)據(jù))
(主要應用于風速,負荷,功率)(Matlab完整程序和數(shù)據(jù))
運行環(huán)境matlab2020及以上,輸入多個特征,輸出單個變量。
excel數(shù)據(jù),方便學習和替換數(shù)據(jù)。
模型描述
分位數(shù)回歸是簡單的回歸,就像普通的最小二乘法一樣,但不是最小化平方誤差的總和,而是最小化從所選分位數(shù)切點產(chǎn)生的絕對誤差之和。如果 q=0.50(中位數(shù)),那么分位數(shù)回歸會出現(xiàn)一個特殊情況 - 最小絕對誤差(因為中位數(shù)是中心分位數(shù))。我們可以通過調(diào)整超參數(shù) q,選擇一個適合平衡特定于需要解決問題的誤報和漏報的閾值。GRU 有兩個有兩個門,即一個重置門(reset gate)和一個更新門(update gate)。從直觀上來說,重置門決定了如何將新的輸入信息與前面的記憶相結合,更新門定義了前面記憶保存到當前時間步的量。如果我們將重置門設置為 1,更新門設置為 0,那么我們將再次獲得標準 RNN 模型。
程序設計
- 完整程序和數(shù)據(jù)獲取方式1,訂閱《GRU門控循環(huán)單元》(數(shù)據(jù)訂閱后私信我獲取):MATLAB實現(xiàn)QRGRU門控循環(huán)單元分位數(shù)回歸多輸入單輸出區(qū)間預測,專欄外只能獲取該程序。
- 完整程序和數(shù)據(jù)獲取方式2,(資源出下載):MATLAB實現(xiàn)QRGRU門控循環(huán)單元分位數(shù)回歸多輸入單輸出區(qū)間預測
% gru
layers = [ ...sequenceInputLayer(inputSize,'name','input') %輸入層設置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') % 全連接層設置(影響輸出維度)(cell層出來的輸出層) %quanRegressionLayer('out',i)];
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
% 參數(shù)設定
opts = trainingOptions('adam', ...'MaxEpochs',10, ...'GradientThreshold',1,...'ExecutionEnvironment','cpu',...'InitialLearnRate',0.001, ...'LearnRateSchedule','piecewise', ...'LearnRateDropPeriod',2, ... %2個epoch后學習率更新'LearnRateDropFactor',0.5, ...'Shuffle','once',... % 時間序列長度'SequenceLength',1,...'MiniBatchSize',24,...'Verbose',0);
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%
% 網(wǎng)絡訓練
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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特征學習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');
————————————————
版權聲明:本文為CSDN博主「機器學習之心」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接: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