組合模型、注意力機制在單步、多步、單變量、多變量預(yù)測中的應(yīng)用
模型整體介紹:
1. 時空卷積網(wǎng)絡(luò)(TCN):
TCN是一種卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),用于捕捉時序數(shù)據(jù)中的時序關(guān)系。它由一系列的1D卷積層組成,每個卷積層都具有相同的卷積核大小和步長。TCN中的殘差連接(Residual Connections)和空洞卷積(Dilated Convolutions)用于增加網(wǎng)絡(luò)的感受野,以便更好地捕捉時序數(shù)據(jù)中的長期依賴關(guān)系。TCN可以同時處理多個時間步的輸入,這使得模型能夠在多個時間步上進行并行預(yù)測。
2.短期和長期依賴關(guān)系的捕捉:
- TCN:通過卷積操作,能夠有效捕捉時間序列中的短期依賴關(guān)系,同時由于其因果卷積和擴展卷積,能夠處理較長的序列依賴關(guān)系。
- BiLSTM:雙向 LSTM 能夠同時處理序列的前向和后向信息,捕捉序列中的長期和雙向依賴關(guān)系。
- 并行計算:TCN:卷積操作可以并行處理,相較于 RNN 的串行計算,TCN 在處理長序列時具有計算效率上的優(yōu)勢。?
3.信息選擇和權(quán)重分配:
Attention 機制:通過注意力機制,模型能夠為輸入序列中的不同部分分配不同的權(quán)重,從而更好地關(guān)注對預(yù)測結(jié)果有重要貢獻的時間步。這有助于提高模型的預(yù)測精度和解釋性。
4.穩(wěn)定性和長序列處理能力:
TCN:由于使用了殘差連接和擴展卷積,TCN 在處理長序列時更穩(wěn)定,能夠避免梯度消失和梯度爆炸問題。結(jié)合了 TCN、BiLSTM 和 Attention 的模型具有強大的表達能力,能夠處理復(fù)雜的時間序列數(shù)據(jù),并且提高預(yù)測的準確性和魯棒性。
配有代碼、文件介紹:
模型介紹和調(diào)參教程:
電力變壓器數(shù)據(jù)集的詳細介紹可以參考下文:
電力變壓器數(shù)據(jù)集介紹和預(yù)處理
1.1 導(dǎo)入數(shù)據(jù)
1 單變量單步預(yù)測任務(wù)
1.1 任務(wù)描述
單變量單步預(yù)測,就是只有(用)一個變量 ,用已有的數(shù)據(jù)去預(yù)測未來的數(shù)據(jù),每次預(yù)測一步
- 輸入訓(xùn)練集 變量:變量var-OT
- 對應(yīng)y值標(biāo)簽為: 變量var-OT
1.2 單變量單步預(yù)測預(yù)處理
1.3 模型定義-基于TCN-BiLSTM-Attention的單變量單步預(yù)測
1.4 設(shè)置參數(shù),訓(xùn)練模型
1.5 預(yù)測結(jié)果可視化
1.6 模型評估
1.7 加載模型進行預(yù)測
2 單變量多步預(yù)測任務(wù)
2.1 任務(wù)描述
單變量多步預(yù)測,就是只有(用)一個變量 ,用已有的數(shù)據(jù)去預(yù)測未來的數(shù)據(jù),每次預(yù)測多步
- 輸入數(shù)據(jù)的形狀應(yīng)該是 (batch_size, window_size, input_dim)
- 輸出數(shù)據(jù)的形狀應(yīng)該是 (batch_size, num_steps, output_dim)
解釋:
- batch_size就是批次
- input_dim 和 output_dim 就是對應(yīng)輸入維度,和輸出維度(如果單變量預(yù)測任務(wù)的話,就是輸入輸出都為1維)
- window_size 就是輸入樣本序列的長度
- num_steps 是需要預(yù)測的步長(比如:用過去 12 個步長 ,預(yù)測未來 3 個步長)
2.2 單變量多步預(yù)測預(yù)處理
2.3 模型定義-基于TCN-BiLSTM-Attention的單變量多步預(yù)測
2.4 設(shè)置參數(shù),訓(xùn)練模型
2.5 預(yù)測結(jié)果可視化
每步預(yù)測單獨可視化:
2.6 模型評估
2.7 加載模型進行預(yù)測
3 多變量單步預(yù)測任務(wù)
3.1 任務(wù)描述
多變量單步預(yù)測,就是有(用)多個變量的數(shù)據(jù)去預(yù)測某個目標(biāo)變量未來的數(shù)據(jù),每次預(yù)測一步
- 輸入訓(xùn)練集 變量:所有特征變量(多個)
- 對應(yīng)y值標(biāo)簽為: 目標(biāo)變量var-OT
3.2 單變量單步預(yù)測預(yù)處理
3.3 模型定義、訓(xùn)練過程、評估、可視化、向外預(yù)測不再贅述
多變量單步預(yù)測效果明顯優(yōu)于單變量單步預(yù)測效果,考慮到其他特征帶來對目標(biāo)變量預(yù)測更多的信息,其預(yù)測性能更顯著!
4 多變量多步預(yù)測任務(wù)
4.1 任務(wù)描述
多變量多步預(yù)測,就是有(用)多個變量的數(shù)據(jù)去預(yù)測某個目標(biāo)變量未來的數(shù)據(jù),每次預(yù)測多步
- 輸入數(shù)據(jù)的形狀應(yīng)該是 (batch_size, window_size, input_dim)
- 輸出數(shù)據(jù)的形狀應(yīng)該是 (batch_size, num_steps, output_dim)
解釋:
- batch_size就是批次
- input_dim 和 output_dim 就是對應(yīng)輸入維度,和輸出維度(如果多變量預(yù)測任務(wù)的話,就是輸入多維,輸出為1維)
- window_size 就是輸入樣本序列的長度
- num_steps 是需要預(yù)測的步長(比如:用過去 12 個步長 ,預(yù)測未來 3 個步長)
4.2 多變量多步預(yù)測預(yù)處理
4.3 模型定義、訓(xùn)練過程、評估、可視化、向外預(yù)測不再贅述
點擊下載:原文完整數(shù)據(jù)、Python代碼????https://mbd.pub/o/bread/ZpaWkp5q??
