區(qū)間預測 | MATLAB實現(xiàn)QRBiLSTM雙向長短期記憶神經(jīng)網(wǎng)絡分位數(shù)回歸多輸入單輸出區(qū)間預測
效果一覽
基本介紹
區(qū)間預測 | MATLAB實現(xiàn)QRBiLSTM雙向長短期記憶神經(jīng)網(wǎng)絡多輸入單輸出分位數(shù)回歸區(qū)間預測
QRBiLSTM是一種雙向長短期記憶(QR-LSTM)神經(jīng)網(wǎng)絡的變體,用于分位數(shù)回歸時間序列區(qū)間預測。該模型可以預測時間序列的不同分位數(shù)的值,并且可以提供置信區(qū)間和風險評估等信息。
QR-LSTM是一種基于LSTM模型的分位數(shù)回歸方法,可以通過學習分位數(shù)回歸損失函數(shù)來預測不同分位數(shù)的值。而QRBiLSTM則是在QR-LSTM的基礎上加入了雙向傳輸?shù)慕Y構,可以捕捉更多的時間序列信息。
模型描述
QRBiLSTM模型的輸入包括歷史數(shù)據(jù)和外部變量,輸出為分位數(shù)值和置信區(qū)間。通常情況下,可以使用訓練數(shù)據(jù)來擬合模型參數(shù),并使用測試數(shù)據(jù)來評估模型的預測性能。
總之,QRBiLSTM是一種非常有用的時間序列預測模型,可以應用于許多領域,如金融、股票、氣象學等,可以提供更全面的時間序列預測信息,有助于提高決策的準確性。
-
下面給出QRBiLSTM模型的具體公式,其中 X \textbf{X} X表示輸入序列, Y \textbf{Y} Y表示輸出序列, H \textbf{H} H表示隱藏狀態(tài), C \textbf{C} C表示記憶狀態(tài), f θ f_{\theta} fθ?表示神經(jīng)網(wǎng)絡模型, q q q表示分位數(shù):
-
正向傳播:
H t f , C t f = L S T M θ ( X t , H t ? 1 f , C t ? 1 f ) \textbf{H}^{f}_{t},\textbf{C}^{f}_{t} = LSTM_{\theta}(\textbf{X}_{t},\textbf{H}^{f}_{t-1},\textbf{C}^{f}_{t-1}) Htf?,Ctf?=LSTMθ?(Xt?,Ht?1f?,Ct?1f?)
H t b , C t b = L S T M θ ( X t , H t + 1 b , C t + 1 b ) \textbf{H}^_{t},\textbf{C}^_{t} = LSTM_{\theta}(\textbf{X}_{t},\textbf{H}^_{t+1},\textbf{C}^_{t+1}) Htb?,Ctb?=LSTMθ?(Xt?,Ht+1b?,Ct+1b?)
Y ^ t q = f θ ( [ H t f , H t b ] ) \hat{Y}^{q}_{t} = f_{\theta}([\textbf{H}^{f}_{t},\textbf{H}^_{t}]) Y^tq?=fθ?([Htf?,Htb?])
? ^ t q = Y t q ? Y ^ t q \hat{\epsilon}^{q}_{t} = Y^{q}_{t} - \hat{Y}^{q}_{t} ?^tq?=Ytq??Y^tq?
σ ^ t q = median { ∣ ? ^ t ? τ q ∣ : τ ≤ lag } ? c α ( lag , n ) \hat{\sigma}^{q}_{t} = \text{median}\{|\hat{\epsilon}^{q}_{t-\tau}|:\tau \leq \text{lag}\} \cdot c_{\alpha}(\text{lag},n) σ^tq?=median{∣?^t?τq?∣:τ≤lag}?cα?(lag,n)
-
其中, H t f \textbf{H}^{f}_{t} Htf?和 C t f \textbf{C}^{f}_{t} Ctf?分別表示正向傳播的隱藏狀態(tài)和記憶狀態(tài); H t b \textbf{H}^_{t} Htb?和 C t b \textbf{C}^_{t} Ctb?分別表示反向傳播的隱藏狀態(tài)和記憶狀態(tài); Y ^ t q \hat{Y}^{q}_{t} Y^tq?表示時間 t t t處分位數(shù)為 q q q的預測值; f θ f_{\theta} fθ?表示神經(jīng)網(wǎng)絡模型; ? ^ t q \hat{\epsilon}^{q}_{t} ?^tq?表示時間 t t t處分位數(shù)為 q q q的預測誤差; σ ^ t q \hat{\sigma}^{q}_{t} σ^tq?表示時間 t t t處分位數(shù)為 q q q的預測誤差的置信區(qū)間,其中 c α ( lag , n ) c_{\alpha}(\text{lag},n) cα?(lag,n)表示置信系數(shù)。
-
QRBiLSTM模型的訓練目標是最小化分位數(shù)損失函數(shù):
Loss θ = ∑ t = 1 T ∑ q ∈ Q ρ q ( ∣ ? t q ∣ ) ? 1 ∣ Q ∣ ∑ q ∈ Q log ( σ ^ t q ) \text{Loss}_{\theta}=\sum_{t=1}^{T}\sum_{q\in Q}\rho_{q}(|\epsilon^{q}_{t}|)-\frac{1}{|Q|}\sum_{q\in Q}\text{log}(\hat{\sigma}^{q}_{t}) Lossθ?=t=1∑T?q∈Q∑?ρq?(∣?tq?∣)?∣Q∣1?q∈Q∑?log(σ^tq?)
- 其中, ρ q ( x ) \rho_{q}(x) ρq?(x)表示分位數(shù)損失函數(shù):
ρ q ( x ) = { q x x ≥ 0 ( q ? 1 ) x x < 0 \rho_{q}(x)=\begin{cases}qx&x\geq 0\\(q-1)x&x<0\end{cases} ρq?(x)={qx(q?1)x?x≥0x<0?文章來源:http://www.zghlxwxcb.cn/news/detail-604732.html
- QRBiLSTM模型的預測目標是預測分位數(shù)值和置信區(qū)間,即 Y ^ t q \hat{Y}^{q}_{t} Y^tq?和 σ ^ t q \hat{\sigma}^{q}_{t} σ^tq?。
程序設計
- 完整程序和數(shù)據(jù)獲取方式1,訂閱《LSTM長短期記憶神經(jīng)網(wǎng)絡》(數(shù)據(jù)訂閱后私信我獲取):MATLAB實現(xiàn)QRBiLSTM雙向長短期記憶神經(jīng)網(wǎng)絡分位數(shù)回歸多輸入單輸出區(qū)間預測,專欄外只能獲取該程序。
- 完整程序和數(shù)據(jù)獲取方式2,(資源出下載):MATLAB實現(xiàn)QRBiLSTM雙向長短期記憶神經(jīng)網(wǎng)絡分位數(shù)多輸入單輸出回歸區(qū)間預測
% 構建模型
numFeatures = size(XTrain,1); % 輸入特征數(shù)
numHiddenUnits = 200; % 隱藏單元數(shù)
numQuantiles = 1; % 分位數(shù)數(shù)目
layers = [ ...
sequenceInputLayer(numFeatures)
bilstmLayer(numHiddenUnits,'OutputMode','last')
dropoutLayer(0.2)
fullyConnectedLayer(numQuantiles)
regressionLayer];
options = trainingOptions('adam', ...
'MaxEpochs',50, ...
'MiniBatchSize',64, ...
'GradientThreshold',1, ...
'Shuffle','every-epoch', ...
'Verbose',false);
net = trainNetwork(XTrain,YTrain,layers,options); % 訓練模型
% 測試模型
YPred = predict(net,XTest); % 預測輸出
quantiles = [0.1,0.5,0.9]; % 分位數(shù)
for i = 1:length(quantiles)
q = quantiles(i);
epsilon = YTest - YPred(:,i); % 預測誤差
lag = 10; % 滯后期數(shù)
sigma = median(abs(epsilon(max(1,end-lag+1):end))) * 1.483; % 置信區(qū)間
lb = YPred(:,i) - sigma * norminv(1-q/2,0,1); % 置信區(qū)間下限
ub = YPred(:,i) + sigma * norminv(1-q/2,0,1); % 置信區(qū)間上限
disp(['Quantile:',num2str(q),' MAE:',num2str(mean(abs(epsilon))),' Width:',num2str(mean(ub-lb))]);
end
參考資料
[1] https://blog.csdn.net/kjm13182345320/article/details/127931217
[2] https://blog.csdn.net/kjm13182345320/article/details/127418340文章來源地址http://www.zghlxwxcb.cn/news/detail-604732.html
到了這里,關于區(qū)間預測 | MATLAB實現(xiàn)QRBiLSTM雙向長短期記憶神經(jīng)網(wǎng)絡分位數(shù)回歸多輸入單輸出區(qū)間預測的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!