在本文中我們將使用深度學習方法 (LSTM) 執行多元時間序列預測。
我們先來了解兩個主題——
- 什么是時間序列分析?
- 什么是 LSTM?
時間序列分析:時間序列表示基於時間順序的一系列數據。它可以是秒、分鍾、小時、天、周、月、年。未來的數據將取決於它以前的值。
在現實世界的案例中,我們主要有兩種類型的時間序列分析——
- 單變量時間序列
- 多元時間序列
對於單變量時間序列數據,我們將使用單列進行預測。

正如我們所見,只有一列,因此即將到來的未來值將僅取決於它之前的值。
但是在多元時間序列數據的情況下,將有不同類型的特征值並且目標數據將依賴於這些特征。

正如在圖片中看到的,在多元變量中將有多個列來對目標值進行預測。(上圖中“count”為目標值)
在上面的數據中,count不僅取決於它以前的值,還取決於其他特征。因此,要預測即將到來的count值,我們必須考慮包括目標列在內的所有列來對目標值進行預測。
在執行多元時間序列分析時必須記住一件事,我們需要使用多個特征預測當前的目標,讓我們通過一個例子來理解 -
在訓練時,如果我們使用 5 列 [feature1, feature2, feature3, feature4, target] 來訓練模型,我們需要為即將到來的預測日提供 4 列 [feature1, feature2, feature3, feature4]。
LSTM
本文中不打算詳細討論LSTM。所以只提供一些簡單的描述,如果你對LSTM沒有太多的了解,可以參考我們以前發布的文章。
LSTM基本上是一個循環神經網絡,能夠處理長期依賴關系。
假設你在看一部電影。所以當電影中發生任何情況時,你都已經知道之前發生了什么,並且可以理解因為過去發生的事情所以才會有新的情況發生。RNN也是以同樣的方式工作,它們記住過去的信息並使用它來處理當前的輸入。RNN的問題是,由於漸變消失,它們不能記住長期依賴關系。因此為了避免長期依賴問題設計了lstm。
現在我們討論了時間序列預測和LSTM理論部分。讓我們開始編碼。
如果你想看完整的代碼,可以在這里查看:
