如何重塑時間序列資料以與 Keras LSTM 一起使用,有狀態 LSTM 以及參數「時間步長」和「特徵」的意義是什麼?

Patricia Arquette
發布: 2024-11-24 05:03:08
原創
368 人瀏覽過

How do I reshape time series data for use with Keras LSTMs, and what is the significance of stateful LSTMs and the parameters

了解Keras LSTM

重塑資料以進行時間序列分析

在Keras 中,時間序列資料通常被重塑為三維數組,其中維度[樣本、時間步長、特徵]。此格式對於 LSTM 層是必要的,LSTM 層會隨著時間的推移而依序處理資料。

  • 樣本:資料集中的序列數
  • 時間步長:每個序列的長度(次數步驟)
  • 特徵:每個時間步的輸入特徵數量

例如,如果您有5 個訓練序列,每個訓練序列有10 個時間步和1 個時間步功能,您的資料將被重塑為(5, 10, 1)。

有狀態LSTM

有狀態 LSTM 允許模型在批次之間維護其內部狀態。這意味著模型在處理一個批次後會記住隱藏狀態,並將它們用作下一個批次的輸入。這在處理順序資料時特別有用,其中當前輸出取決於先前的輸入。

在您提供的 Keras 程式碼中,stateful=True 設定為 True,表示 LSTM 是有狀態的。 batch_size 設定為 1,這表示模型將一次處理一個序列。該模型將保留訓練運行之間的細胞記憶體值,使其能夠學習資料中的長期依賴性。

時間步長和特徵

  • 時間步長: 輸入資料中的時間步數表示所考慮的序列的長度。圖中,粉紅色框代表序列的長度。
  • 特徵:每個時間步都有許多輸入特徵,這些特徵是 LSTM 使用的值。在影像中,特徵的數量是每個粉紅色框中的綠色框的數量。

如果您正在處理多元時間序列,其中每個時間步長都有多個輸入特徵(例如股票價格) ),特徵數量將大於 1。

理解 LSTM 架構

您提供的 Keras LSTM 實作有一個 LSTM 層,有 4 個單元,回傳序列為 True。這意味著 LSTM 將為每個輸入時間步輸出長度為 4 的序列。

然後使用均方誤差損失函數和 Adam 最佳化器編譯模型。訓練循環迭代 100 個 epoch,批量大小為 1。

需要注意的是,此 LSTM 模型旨在根據先前的時間步預測下一個時間步。但是,可以透過更改輸出層和損失函數來修改模型以用於其他任務,例如序列分類或語言建模。

以上是如何重塑時間序列資料以與 Keras LSTM 一起使用,有狀態 LSTM 以及參數「時間步長」和「特徵」的意義是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板