區間預測 | MATLAB實現QRBiLSTM雙向長短期記憶神經網絡分位數回歸時間序列區間預測

區間預測 | MATLAB實現QRBiLSTM雙向長短期記憶神經網絡分位數回歸時間序列區間預測

目錄

    • 區間預測 | MATLAB實現QRBiLSTM雙向長短期記憶神經網絡分位數回歸時間序列區間預測
      • 效果一覽
      • 基本介紹
      • 模型描述
      • 程序設計
      • 參考資料

效果一覽

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

基本介紹

區間預測 | MATLAB實現QRBiLSTM雙向長短期記憶神經網絡分位數回歸時間序列區間預測

QRBiLSTM是一種雙向長短期記憶(QR-LSTM)神經網絡的變體,用于分位數回歸時間序列區間預測。該模型可以預測時間序列的不同分位數的值,并且可以提供置信區間和風險評估等信息。
QR-LSTM是一種基于LSTM模型的分位數回歸方法,可以通過學習分位數回歸損失函數來預測不同分位數的值。而QRBiLSTM則是在QR-LSTM的基礎上加入了雙向傳輸的結構,可以捕捉更多的時間序列信息。

模型描述

QRBiLSTM模型的輸入包括歷史數據,輸出為分位數值和置信區間。通常情況下,可以使用訓練數據來擬合模型參數,并使用測試數據來評估模型的預測性能。
總之,QRBiLSTM是一種非常有用的時間序列預測模型,可以應用于許多領域,如金融、股票、氣象學等,可以提供更全面的時間序列預測信息,有助于提高決策的準確性。

  • 下面給出QRBiLSTM模型的具體公式,其中 X \textbf{X} X表示輸入序列, Y \textbf{Y} Y表示輸出序列, H \textbf{H} H表示隱藏狀態, C \textbf{C} C表示記憶狀態, f θ f_{\theta} fθ?表示神經網絡模型, q q q表示分位數:

  • 正向傳播:

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}^{b}_{t},\textbf{C}^{b}_{t} = LSTM_{\theta}(\textbf{X}_{t},\textbf{H}^{b}_{t+1},\textbf{C}^{b}_{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}^{b}_{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?分別表示正向傳播的隱藏狀態和記憶狀態; H t b \textbf{H}^{b}_{t} Htb? C t b \textbf{C}^{b}_{t} Ctb?分別表示反向傳播的隱藏狀態和記憶狀態; Y ^ t q \hat{Y}^{q}_{t} Y^tq?表示時間 t t t處分位數為 q q q的預測值; f θ f_{\theta} fθ?表示神經網絡模型; ? ^ t q \hat{\epsilon}^{q}_{t} ?^tq?表示時間 t t t處分位數為 q q q的預測誤差; σ ^ t q \hat{\sigma}^{q}_{t} σ^tq?表示時間 t t t處分位數為 q q q的預測誤差的置信區間,其中 c α ( lag , n ) c_{\alpha}(\text{lag},n) cα?(lag,n)表示置信系數。

  • QRBiLSTM模型的訓練目標是最小化分位數損失函數:

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=1T?qQ?ρq?(?tq?)?Q1?qQ?log(σ^tq?)

  • 其中, ρ q ( x ) \rho_{q}(x) ρq?(x)表示分位數損失函數:

ρ 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?x0x<0?

  • QRBiLSTM模型的預測目標是預測分位數值和置信區間,即 Y ^ t q \hat{Y}^{q}_{t} Y^tq? σ ^ t q \hat{\sigma}^{q}_{t} σ^tq?

程序設計

  • 完整程序和數據獲取方式(資源處下載):MATLAB實現QRBiLSTM雙向長短期記憶神經網絡分位數回歸時間序列區間預測
% 構建模型
numFeatures = size(XTrain,1); % 輸入特征數
numHiddenUnits = 200; % 隱藏單元數
numQuantiles = 1; % 分位數數目
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]; % 分位數
for i = 1:length(quantiles)q = quantiles(i);epsilon = YTest - YPred(:,i); % 預測誤差lag = 10; % 滯后期數sigma = median(abs(epsilon(max(1,end-lag+1):end))) * 1.483; % 置信區間lb = YPred(:,i) - sigma * norminv(1-q/2,0,1); % 置信區間下限ub = YPred(:,i) + sigma * norminv(1-q/2,0,1); % 置信區間上限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.pswp.cn/news/40831.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40831.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40831.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Codeforces 461B 樹形 DP

題意 傳送門 Codeforces 461B Appleman and Tree 題解 d p v , k dp_{v,k} dpv,k? 代表以節點 v v v 為根的子樹中&#xff0c;包含了 v v v 的聯通分量是否存在一個黑色節點 &#xff0c;同時其余聯通分量僅包含一個黑色節點情況下&#xff0c;劃分方案的數量。DFS 求解&…

微服務觀測性提升專項梳理

文章目錄 項目背景&#xff1a;項目目標&#xff1a;專項人員關鍵問題及風險APM 進展 項目背景&#xff1a; 隨著微服務架構的普及&#xff0c;構建和管理大規模的分布式系統變得越來越復雜。為了確保這些系統的可靠性和性能&#xff0c;以及快速排除故障&#xff0c;對微服務…

Git 合并分支時允許合并不相關的歷史

git fetch git fetch 是 Git 的一個命令&#xff0c;用于從遠程倉庫中獲取最新的提交和數據&#xff0c;同時更新本地倉庫的遠程分支指針。 使用 git fetch 命令可以獲取遠程倉庫的最新提交&#xff0c;但并不會自動合并或修改本地分支。它會將遠程倉庫的提交和引用&#xff…

Linux如何查看文件進程占用-lsof

lsof命令是什么&#xff1f; 可以列出被進程所打開的文件的信息。被打開的文件可以是 1.普通的文件&#xff0c;2.目錄 3.網絡文件系統的文件&#xff0c;4.字符設備文件 5.(函數)共享庫 6.管道&#xff0c;命名管道 7.符號鏈接 8.底層的socket字流&#xff0c;網絡socket…

Rust語法: 枚舉,泛型,trait

這是我學習Rust的筆記&#xff0c;本文適合于有一定高級語言基礎的開發者看不適合剛入門編程的人&#xff0c;對于一些概念像枚舉&#xff0c;泛型等&#xff0c;不會再做解釋&#xff0c;只寫在Rust中怎么用。 文章目錄 枚舉枚舉的定義與賦值枚舉綁定方法和函數match匹配枚舉…

代碼隨想錄算法訓練營二刷第一天| 704. 二分查找,27. 移除元素

代碼隨想錄算法訓練營二刷第一天| 704. 二分查找&#xff0c;27. 移除元素 文章目錄 代碼隨想錄算法訓練營二刷第一天| 704. 二分查找&#xff0c;27. 移除元素一、704. 二分查找二、35.搜索插入位置三、34. 在排序數組中查找元素的第一個和最后一個位置四、69.x 的平方根五、3…

【回溯】總結

1、 組合和子集問題 組合問題需要滿足一定要求才算作一個答案&#xff0c;比如數量要求&#xff08;k個數&#xff09;&#xff0c;累加和要求&#xff08;target&#xff09;。 子集問題是只要構成一個新的子集就算作一個答案。 進階&#xff1a;去重邏輯。 一般都是要對同…

Linux 5種網絡IO模型

Linux IO模型 網絡IO的本質是socket的讀取&#xff0c;socket在linux系統被抽象為流&#xff0c;IO可以理解為對流的操作。剛才說了&#xff0c;對于一次IO訪問&#xff08;以read舉例&#xff09;&#xff0c;數據會先被拷貝到操作系統內核的緩沖區中&#xff0c;然后才會從操…

LL庫實現SPI MDA發送方式驅動WS2812

1&#xff0c;首先打卡STM32CubeMX&#xff0c;配置一下工程&#xff0c;這里使用的芯片是STM32F030F4P6。 時鐘 SPI外設 SPI DMA 下載接口&#xff0c;這個不配置待會下程序后第二次就不好下載調試了。 工程配置&#xff0c;沒啥說的 選擇生成所有文件 將驅動都改為LL庫 然后直…

OpenCV之特征點匹配

特征點選取 特征點探測方法有goodFeaturesToTrack(),cornerHarris()和SURF()。一般使用goodFeaturesToTrack()就能獲得很好的特征點。goodFeaturesToTrack()定義&#xff1a; void goodFeaturesToTrack( InputArray image, OutputArray corners,int maxCorners, double qualit…

jmeter errstr :“unsupported field type for multipart.FileHeader“

在使用jmeter測試接口的時候&#xff0c;提示errstr :"unsupported field type for multipart.FileHeader"如圖所示 這是因為我們 在HTTP信息頭管理加content-type參數有問題 直接在HTTP請求中&#xff0c;勾選&#xff1a; use multipart/form-data for POST【中文…

22、touchGFX學習Model-View-Presenter設計模式

touchGFX采用MVP架構&#xff0c;如下所示&#xff1a; 本文界面如下所示&#xff1a; 本文將實現兩個操作&#xff1a; 1、觸摸屏點擊開關按鍵實現打印開關顯示信息&#xff0c;模擬開關燈效果 2、板載案按鍵控制觸摸屏LED燈的顯示和隱藏 一、觸摸屏點擊開關按鍵實現打印開…

Go語言之依賴管理

go module go module是Go1.11版本之后官方推出的版本管理工具&#xff0c;并且從Go1.13版本開始&#xff0c;go module將是Go語言默認的依賴管理工具。 GO111MODULE 要啟用go module支持首先要設置環境變量GO111MODULE 通過它可以開啟或關閉模塊支持&#xff0c;它有三個可選…

docker搭建LNMP

docker安裝 略 下載鏡像 nginx:最新版php-fpm:根據自己需求而定mysql:根據自己需求定 以下是我搭建LNMP使用的鏡像版本 rootVM-12-16-ubuntu:/docker/lnmp/php/etc# docker images REPOSITORY TAG IMAGE ID CREATED SIZE mysql 8.0…

Linux的基本權限(文件,目錄)

文章目錄 前言一、Linux權限的概念二、Linux權限管理 1.文件訪問者分類2.文件類型和訪問類型3.文件訪問權限的相關設置方法三、目錄的權限四、權限的總結 前言 Linux下一切皆文件&#xff0c;指令的本質就是可執行文件&#xff0c;直接安裝到了系統的某種路徑下 一、Linux權限的…

embed mongodb 集成spring

在property文件下添加 de.flapdoodle.mongodb.embedded.version5.0.5 spring.mongodb.embedded.storage.oplog-size0不指定數據庫&#xff0c;會使用test&#xff0c; port默認是0&#xff0c;隨機端口號。 oplog-size mac默認是192mb, 其他系統會使用5%的磁盤可用空間&#x…

SpringCloud實用篇6——elasticsearch搜索功能

目錄 1 DSL查詢文檔1.1 DSL查詢分類1.2 全文檢索查詢1.2.1 使用場景1.2.2 基本語法1.2.3 示例1.2.4 總結 1.3 精準查詢1.3.1 term查詢1.3.2 range查詢1.3.3 總結 1.4.地理坐標查詢1.4.1 矩形范圍查詢1.4.2 附近查詢 1.5 復合查詢1.5.1 相關性算分1.5.2 算分函數查詢1&#xff0…

Python 字節碼指令 LOAD_DEREF

LOAD_DEREF 是 Python 字節碼指令&#xff0c;它與閉包和嵌套函數有關。要理解 LOAD_DEREF&#xff0c;我們首先需要了解 Python 中的幾個概念&#xff1a;cell、free variable 和閉包。 Cell 和 Free Variables: 當一個嵌套函數引用了其上級作用域中的一個變量&#xff0c;但該…

【大數據Hive】hive 事務表使用詳解

目錄 一、前言 二、Hive事務背景知識 hive事務實現原理 hive事務原理之 —— delta文件夾命名格式 _orc_acid_version 說明 bucket_00000 合并器(Compactor) 二、Hive事務使用限制 參數設置 客戶端參數設置 客戶端參數設置 三、Hive事務使用操作演示 操作步驟 客…