新思路 | 效果絕佳的組合預(yù)測(cè)模型!
基于 CEEMDAN-Transformer-BiLSTM并行 + XGBoost 的組合預(yù)測(cè)模型!
組合預(yù)測(cè)模型思路:使用復(fù)雜模型去預(yù)測(cè)數(shù)據(jù)的分量特征,因?yàn)閺?fù)雜模型參數(shù)量大,適合預(yù)測(cè)高頻復(fù)雜分量特征,但是低頻分量特征比較簡(jiǎn)單,要是還用復(fù)雜模型的話,就容易過(guò)擬合,反而效果不好,所以對(duì)于低頻分量特征 我們采用簡(jiǎn)單模型(或者機(jī)器學(xué)習(xí)模型)去預(yù)測(cè),然后進(jìn)行預(yù)測(cè)分量的重構(gòu)以實(shí)現(xiàn)高精度預(yù)測(cè)。
環(huán)境:python 3.9 pytorch1.8 及其以上
1. Transformer:
Transformer 是一種基于注意力機(jī)制的深度學(xué)習(xí)模型,廣泛應(yīng)用于自然語(yǔ)言處理任務(wù)。它通過(guò)自注意力機(jī)制(Self-Attention)來(lái)捕捉輸入序列中不同位置之間的依賴關(guān)系,從而實(shí)現(xiàn)了對(duì)序列數(shù)據(jù)的有效建模。在預(yù)測(cè)任務(wù)中,Transformer可以幫助模型捕捉時(shí)域信號(hào)中不同時(shí)間步之間的復(fù)雜關(guān)聯(lián)。
2. 雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(BiLSTM):
雙向長(zhǎng)短期記憶網(wǎng)絡(luò)是一種具有記憶單元和遺忘門(mén)的循環(huán)神經(jīng)網(wǎng)絡(luò),可以有效地處理序列數(shù)據(jù)并捕捉序列中的長(zhǎng)期依賴關(guān)系。通過(guò)同時(shí)考慮輸入序列的過(guò)去和未來(lái)信息,BiLSTM可以更好地理解數(shù)據(jù)中的時(shí)序特征和變化趨勢(shì)。
3. 模型結(jié)合:
基于 Transformer-BiLSTM 的創(chuàng)新模型將 Transformer 和 BiLSTM 結(jié)合在一起,充分利用了兩者的優(yōu)勢(shì)。Transformer 可以幫助模型捕捉全局的序列信息和復(fù)雜的依賴關(guān)系,而 BiLSTM 則可以更好地捕捉局部的時(shí)序特征和變化趨勢(shì)。通過(guò)結(jié)合兩種模型,創(chuàng)新模型可以在預(yù)測(cè)任務(wù)中取得更好的性能和效果,提高預(yù)測(cè)精度和效率。
4. 組合預(yù)測(cè)
把 CEEMDAN 算法對(duì)時(shí)間序列分解后的分量通過(guò)樣本熵的計(jì)算進(jìn)行劃分,再分別通過(guò)Transformer-BiLSTM 并行模型 和 XGBoost 模型進(jìn)行組合預(yù)測(cè),來(lái)實(shí)現(xiàn)精準(zhǔn)預(yù)測(cè)。
注意:此次產(chǎn)品,我們還有配套的模型講解和參數(shù)調(diào)節(jié)講解!

前言
本文基于前期介紹的電力變壓器(文末附數(shù)據(jù)集),介紹一種綜合應(yīng)用完備集合經(jīng)驗(yàn)?zāi)B(tài)分解CEEMDAN與組合預(yù)測(cè)模型(Transformer-BiLSTM并行 + XGBoost)的方法,以提高時(shí)間序列數(shù)據(jù)的預(yù)測(cè)性能。該方法的核心是使用CEEMDAN算法對(duì)時(shí)間序列進(jìn)行分解,接著利用Transformer-BiLSTM并行模型和XGBoost模型對(duì)分解后的數(shù)據(jù)進(jìn)行建模,最終通過(guò)集成方法結(jié)合兩者的預(yù)測(cè)結(jié)果。
電力變壓器數(shù)據(jù)集的詳細(xì)介紹可以參考下文:
電力變壓器數(shù)據(jù)集介紹和預(yù)處理
1 電力變壓器數(shù)據(jù)CEEMDAN分解與可視化
1.1 導(dǎo)入數(shù)據(jù)

1.2 CEEMDAN分解

根據(jù)分解結(jié)果看,CEEMDAN一共分解出11個(gè)分量,然后通過(guò)計(jì)算每個(gè)分量的樣本熵值進(jìn)行分析。樣本熵是一種用于衡量序列復(fù)雜度的方法,可以通過(guò)計(jì)算序列中的不確定性來(lái)評(píng)估其復(fù)雜性。樣本熵越高,表示序列的復(fù)雜度越大。

我們大致把前6個(gè)高樣本熵值復(fù)雜分量作為T(mén)ransformer-BiLSTM并行模型的輸入進(jìn)行預(yù)測(cè),后5個(gè)低樣本熵值簡(jiǎn)單分量作為XGBoost模型的輸入進(jìn)行預(yù)測(cè).
2 數(shù)據(jù)集制作與預(yù)處理
2.1 劃分?jǐn)?shù)據(jù)集
按照9:1劃分訓(xùn)練集和測(cè)試集, 然后再按照前6后5劃分分量數(shù)據(jù)。

分批保存數(shù)據(jù),用于不同模型的預(yù)測(cè)
3 基于CEEMADN的組合預(yù)測(cè)模型
3.1 定義Transformer-BiLSTM并行預(yù)測(cè)網(wǎng)絡(luò)模型

3.2 設(shè)置參數(shù),訓(xùn)練模型

50個(gè)epoch,MSE 為0.001208,Transformer-BiLSTM并行預(yù)測(cè)效果顯著,模型能夠充分提取時(shí)間序列的時(shí)序特征和空間特征,收斂速度快,性能優(yōu)越,預(yù)測(cè)精度高,適當(dāng)調(diào)整模型參數(shù),還可以進(jìn)一步提高模型預(yù)測(cè)表現(xiàn)。
注意調(diào)整參數(shù):
- 可以適當(dāng)增加Transformer編碼器層數(shù)和每層的維度,微調(diào)學(xué)習(xí)率;
- 調(diào)整BiLSTM層數(shù)、每層神經(jīng)元個(gè)數(shù)、注意力維度數(shù),增加更多的 epoch (注意防止過(guò)擬合)
- 可以改變滑動(dòng)窗口長(zhǎng)度(設(shè)置合適的窗口長(zhǎng)度)
保存訓(xùn)練結(jié)果和預(yù)測(cè)數(shù)據(jù),以便和后面XGBoost模型的結(jié)果相組合。
4 基于XGBoost的模型預(yù)測(cè)
傳統(tǒng)機(jī)器學(xué)習(xí)模型 XGBoost 教程如下:
超強(qiáng)預(yù)測(cè)算法:XGBoost預(yù)測(cè)模型
數(shù)據(jù)加載,訓(xùn)練數(shù)據(jù)、測(cè)試數(shù)據(jù)分組,5個(gè)分量,劃分5個(gè)數(shù)據(jù)集

保存預(yù)測(cè)的數(shù)據(jù),其他分量預(yù)測(cè)與上述過(guò)程一致,保留最后模型結(jié)果即可。
5 結(jié)果可視化和模型評(píng)估
5.1 分量預(yù)測(cè)結(jié)果可視化

5.2 組合預(yù)測(cè)結(jié)果可視化

5.3 模型評(píng)估
由分量預(yù)測(cè)結(jié)果可見(jiàn),前6個(gè)復(fù)雜分量在Transformer-BiLSTM并行預(yù)測(cè)模型下擬合效果良好,后5個(gè)簡(jiǎn)單分量在XGBoost模型的預(yù)測(cè)下,擬合程度特別好,組合預(yù)測(cè)效果顯著!
圖片
? 本文轉(zhuǎn)載自?????建模先鋒?????,作者:小蝸愛(ài)建模

















