时间序列数据预测的类型
本文主要內容是使用LSTM網絡進行不同類型的時間序列預測任務,不涉及代碼,僅僅就不同類型的預測任務和數據劃分進行說明。
參考文章:https://machinelearningmastery.com/how-to-develop-lstm-models-for-time-series-forecasting/
注:所涉及的概念在數據案例會說明
時間序列數據預測本質就是利用先前的值預測后面的值,在得到一組數據后,需要將數據處理為一個個樣本,每個樣本中包括先前的數據和要預測的數據,將其作為訓練集
1 單變量時間序列數據預測
單變量時間序列數據指的是,除了時間屬性數據,只有單一屬性的一組數據,比如2010一年間黃金的價格,按天統計,也就是一天一個數據。數據中只有價格這一個屬性,共365個數據。
同時單變量也是指數據只有一個序列,一個變量也就是一個特征(feature)。
1.1 單步預測
單步預測中的單步是指一個時間步長(time step),比如上述黃金價格數據中,每一天就是一個時間步長,即在時間序列數據中每獲取一次數據就是一個時間步。
單步預測就是僅僅預測一個時間步長的數據。
單變量時間序列數據的單步預測(單變量單步預測,Univariate Step):利于前邊幾個時間步長的數據預測下一個時間步長的數據
數據處理:
數據集dateset [10, 20, 30, 40, 50, 60, 70, 80, 90]上面的少量數據中,只是單一屬性的一組數據。在進行預測前要將數據處理為樣本(假設使用3個時間步長的數據預測下一個時間步長的數據),樣本結構如下:
以下數據共有6個樣本,每個樣本中都是前三個時間步長的數據為一組作為輸入,下一個時間步長的數據為另一組作為輸出。
使用這樣的數據訓練一個模型后,我們就可以使用前連續三個時間步長的數據預測下一個時間步長的數據。
最后我們在看一下樣本中輸入數據和輸出數據的維度:
輸入:兩個維度,樣本總數、用于預測的時間步長,這里分別是6、3
輸出:一個維度,樣本數量,這里是6
1.2 多步預測
單變量時間序列數據的多步預測(單變量多步預測,Univariate Multi-Step):利于前邊幾個時間步長的數據預測下面多個時間步長的數據。
本例:使用3個時間步長的數據預測后2個時間步長的數據,
數據處理:
數據集dateset [10, 20, 30, 40, 50, 60, 70, 80, 90]樣本結構如下:
以下數據共有6個樣本,每個樣本中都是前三個時間步長的數據為一組作為輸入,后兩個時間步長的數據為另一組作為輸出。
使用這樣的數據訓練一個模型后,我們就可以使用前連續三個時間步長的數據預測下一個時間步長的數據。
使用這樣的數據訓練一個模型后,我們就可以使用前連續三個時間步長的數據預測下一個時間步長的數據。
輸入數據和輸出數據的維度:
輸入:兩個維度,樣本總數、用于預測的時間步長,這里分別是6、3
輸出:兩個維度,樣本數據、預測的時間步長,這里分別是6、2
2 多變量時間序列數據預測
多變量時間序列數據是指,除了時間屬性外,還有多個屬性或者說特征的一組數據。
2.1 單步預測
2.1.1 多變量預測
多時間變量數據的單步預測(多變量單步預測,Multivariate Input Series):利用前面的多個時間步的部分屬性數據,預測下一個時間步的某個屬性數據,與單變量不同,這里每個時間步都有多個數據。以上邊電耗數據為例。一種預測方式是:使用三個時間步的平均電流、平均電壓的數據,預測一個時間步平均功率。
數據集處理:
[[ 10 15 25][ 20 25 45][ 30 35 65][ 40 45 85][ 50 55 105][ 60 65 125][ 70 75 145][ 80 85 165][ 90 95 185]]劃分樣本
以下數據共有6個樣本,每個樣本中都是前三個時間步長的數據是平均電流和平均電壓作為輸入,后一個時間步長的平均功率作為輸出。
使用這樣的方式可以利用前三個時間步的電流、電壓數據,預測當前功率(只給電流、電壓信息)。
輸入數據和輸出數據的維度:
輸入:三個維度,樣本總數、用于預測的時間步長、用于預測的特征數,這里分別是6、3、2
輸出:兩個維度,樣本數據、預測的特征數,這里分別是6、1
2.1.2 并行預測 (全變量預測)
多變量時間序列數據單步并行預測(多變量單步并行預測,Multivariate Multi-Step Parallel Series):使用前面幾個時間步的所有屬性數據,預測下一個時間步的所有屬性數據。以上面的電耗數據為例,使用前3個時間步的平均電流、平均電壓、平均功率預測下一個時間的平均電流、平均電壓、平均功率。
數據集:
[[ 10 15 25][ 20 25 45][ 30 35 65][ 40 45 85][ 50 55 105][ 60 65 125][ 70 75 145][ 80 85 165][ 90 95 185]]樣本處理:
[[10 15 25][20 25 45][30 35 65]] [40 45 85] [[20 25 45][30 35 65][40 45 85]] [ 50 55 105] [[ 30 35 65][ 40 45 85][ 50 55 105]] [ 60 65 125] [[ 40 45 85][ 50 55 105][ 60 65 125]] [ 70 75 145] [[ 50 55 105][ 60 65 125][ 70 75 145]] [ 80 85 165] [[ 60 65 125][ 70 75 145][ 80 85 165]] [ 90 95 185]使用這樣的方式可以利用前三個時間步的電流、電壓、功率數據,預測時預測后面1個時間步長的電流、電壓、功率。
輸入數據和輸出數據的維度:
輸入:三個維度,樣本總數、用于預測的時間步長、用于預測的特征數,這里分別是6、3、3
輸出:兩個維度,樣本數據、預測的特征數,這里分別是6、3
2.2 多步預測
2.2.1 多變量預測
多時間變量數據的多步預測(多變量多步預測,Multiple Input Multi-Step Output):利用前面的多個時間步的部分屬性數據,預測后面多個時間步的某個屬性數據。以上面的電耗數據為例,一中預測方式是,使用前3個時間步的平均電流、平均電壓預測后面2個時間步長的平均功率。
數據集:
樣本處理:
[[10 15][20 25][30 35]] [65 85] [[20 25][30 35][40 45]] [ 85 105] [[30 35][40 45][50 55]] [105 125] [[40 45][50 55][60 65]] [125 145] [[50 55][60 65][70 75]] [145 165] [[60 65][70 75][80 85]] [165 185]使用這樣的方式可以利用前三個時間步的電流、電壓數據,預測時預測后面2個時間步長的平均功率。
輸入數據和輸出數據的維度:
輸入:三個維度,樣本總數、用于預測的時間步長、用于預測的特征數,這里分別是6、3、2
輸出:兩個維度,樣本數據、預測的時間步長,這里分別是6、2
2.2.2 并行預測 (全變量預測)
多變量時間序列數據的多步并行預測(多變量多步并行預測,Multiple Parallel Input and Multi-Step Output):使用前面幾個時間步的所有屬性數據,預測下一個時間步的所有屬性數據。以上面的電耗數據為例,使用前3個時間步的平均電流、平均電壓、平均功率預測后面多個時間的平均電流、平均電壓、平均功率。
數據集:
[[ 10 15 25][ 20 25 45][ 30 35 65][ 40 45 85][ 50 55 105][ 60 65 125][ 70 75 145][ 80 85 165][ 90 95 185]]樣本處理:
(5, 3, 3) (5, 2, 3)[[10 15 25][20 25 45][30 35 65]] [[ 40 45 85][ 50 55 105]] [[20 25 45][30 35 65][40 45 85]] [[ 50 55 105][ 60 65 125]] [[ 30 35 65][ 40 45 85][ 50 55 105]] [[ 60 65 125][ 70 75 145]] [[ 40 45 85][ 50 55 105][ 60 65 125]] [[ 70 75 145][ 80 85 165]] [[ 50 55 105][ 60 65 125][ 70 75 145]] [[ 80 85 165][ 90 95 185]]使用這樣的方式可以利用前三個時間步的電流、電壓、功率數據,預測時預測后面2個時間步長的電流、電壓、功率。
輸入數據和輸出數據的維度:
輸入:三個維度,樣本總數、用于預測的時間步長、用于預測的特征數,這里分別是6、3、2
輸出:三個維度,樣本數據、預測的時間步長、預測的特征數,這里分別是6、2、3
總結
以上是生活随笔為你收集整理的时间序列数据预测的类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Partial Evaluation
- 下一篇: mysql中any,in,some,al