邵必林 任萌 田寧
摘要:小時(shí)天然氣負(fù)荷預(yù)測(cè)受外部特征因素與預(yù)測(cè)方法的影響,為提高其預(yù)測(cè)精度并解決其他深度學(xué)習(xí)類模型或組合模型可解釋性差、訓(xùn)練時(shí)間過(guò)長(zhǎng)的問(wèn)題,在引入“小時(shí)影響度”這一新特征因素的同時(shí)提出一種基于極端梯度提升樹(extreme gradient boosting tress,XGBoost)模型與可解釋性神經(jīng)網(wǎng)絡(luò)模型NBEATSx組合預(yù)測(cè)的方法;以 XGBoost模型作為特征篩選器對(duì)特征集數(shù)據(jù)進(jìn)行篩選,再將篩選降維后的數(shù)據(jù)集輸入到NBEATSx中訓(xùn)練,提高NBEATSx的訓(xùn)練速度與預(yù)測(cè)精度;將負(fù)荷數(shù)據(jù)與特征數(shù)據(jù)經(jīng)STL(seasonal and trend decomposition using Loess)算法分解為趨勢(shì)分量、季節(jié)分量與殘差分量,再分別輸入到XGBoost中進(jìn)行預(yù)測(cè),減弱原始數(shù)據(jù)中的噪音影響;將優(yōu)化后的NBEATSx與XGBoost模型通過(guò)方差倒數(shù)法進(jìn)行組合,得出STL-XGBoost-NBEATSx組合模型的預(yù)測(cè)結(jié)果。結(jié)果表明:“小時(shí)影響度”這一新特征是小時(shí)負(fù)荷預(yù)測(cè)的重要影響因素,STL-XGBoost-NBEATSx模型訓(xùn)練速度有所提高,具有良好的可解釋性與更高的預(yù)測(cè)準(zhǔn)確性,模型預(yù)測(cè)結(jié)果的平均絕對(duì)百分比誤差、均方誤差、平均絕對(duì)誤差分別比其余單一模型平均降低54.20%、63.97%、49.72%,比其余組合模型平均降低24.85%、34.39%、23.41%,模型的決定系數(shù)為0.935,能夠很好地?cái)M合觀測(cè)數(shù)據(jù)。
關(guān)鍵詞:天然氣負(fù)荷預(yù)測(cè); 小時(shí)影響因素; 極端梯度提升樹; 可解釋性; NBEATSx; 組合模型
中圖分類號(hào):TP 996; TP 183 ??文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1673-5005(2024)03-0170-10 ??doi:10.3969/j.issn.1673-5005.2024.03.019
Hourly natural gas load forecast based on ?STL-XGBoost-NBEATSx
SHAO Bilin, REN Meng, TIAN Ning
(School of Management, Xian University of Architecture and Technology, Xian 710311, China)
Abstract: Hourly natural gas load forecasting was affected by external feature factors and forecasting methods. In order to improve the accuracy of natural gas hourly load forecasting and solve the problems of poor interpretability and long training time of other deep learning models or combination models, in this paper we introduce a new feature of "hourly influence" and propose a prediction method based on the combination of extreme gradient boosting tree (XGBoost) model and interpretable neural network model NBEATSx. The XGBoost model was used for feature screening, then the filtered and dimensionality-reduced dataset and load values were inputted into NBEATSx for training, which improves the training speed and prediction accuracy of NBEATSx. The load data and feature data were decomposed into the trend, seasonal, and residual components by the seasonal and trend decomposition using Loess (STL) algorithm, and then they were inputted into XGBoost for prediction, which reduces the influence of the noise in the original data. The two types of models mentioned above were combined by the inverse variance method to obtain the prediction results of the STL-XGBoost-NBEATSx model. The results show that the new feature of "hourly influence" is an essential factor in hourly load forecasting. The STL-XGBoost-NBEATSx not only improves the training speed, but also has good interpretability and higher prediction accuracy. The mean absolute percentage error, mean square error, and mean absolute error of the prediction results of the combined model are respectively 54.20%, 63.97%, and 49.72% lower than the rest of the single model on average, and 24.85%, 34.39%, and 23.41% lower than the rest of the combined model on average. The model has an R-squared of 0.935, which provides a good fit to the observed data.
Keywords:natural gas load forecasting; hourly influencing factors; extreme gradient boosting trees; interpretability; NBEATSx; combinatorial models
隨著中國(guó)“碳達(dá)峰、碳中和”工作目標(biāo)的推進(jìn),天然氣作為一種低碳清潔能源,在供應(yīng)端和消費(fèi)端各領(lǐng)域具有獨(dú)特的比較優(yōu)勢(shì)[1]。近年來(lái),中國(guó)天然氣產(chǎn)量不斷提高,但仍難以滿足高速增長(zhǎng)的天然氣消費(fèi)需求,供需缺口持續(xù)擴(kuò)大,甚至在一些地區(qū)出現(xiàn)了“氣荒”[2]。負(fù)荷預(yù)測(cè)是保證天然氣供需平衡的基礎(chǔ),相比于日負(fù)荷與年負(fù)荷等中低頻數(shù)據(jù),小時(shí)負(fù)荷更能反映出天然氣的變化情況。準(zhǔn)確的天然氣負(fù)荷預(yù)測(cè)能夠提高天然氣供應(yīng)的可靠性,改善天然氣供不應(yīng)求的情況。因此筆者使用XGBoost特征篩選優(yōu)化NBEATSx,再使用STL(seasonal and trend decomposition using Loess)分解優(yōu)化XGBoost,最后使用誤差倒數(shù)法將優(yōu)化后的兩類模型組合,結(jié)合樹模型訓(xùn)練速度快以及神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)精度高的優(yōu)勢(shì)解決單一模型存在的不足。
1 國(guó)內(nèi)外研究現(xiàn)狀
天然氣負(fù)荷數(shù)據(jù)具有非線性、非平穩(wěn)性等特點(diǎn),且受眾多復(fù)雜因素的影響,現(xiàn)有預(yù)測(cè)模型主要分為傳統(tǒng)模型與基于人工智能的模型兩大類。傳統(tǒng)預(yù)測(cè)模型主要有指數(shù)平滑法(ES)[3]、自回歸差分移動(dòng)平均法(ARIMA)等,這類模型原理簡(jiǎn)單,對(duì)非平穩(wěn)、強(qiáng)非線性的數(shù)據(jù)預(yù)測(cè)精度較低。基于人工智能的預(yù)測(cè)模型主要有隨機(jī)森林(RF)[4]、支持向量回歸(SVR)[5]、梯度提升類算法與基于神經(jīng)網(wǎng)絡(luò)的算法等。梯度提升類基于樹模型的算法具有良好的可解釋性,可輸出特征重要度來(lái)實(shí)現(xiàn)對(duì)高維特征的篩選,但模型缺乏對(duì)強(qiáng)波動(dòng)時(shí)間段的感知能力,無(wú)法有效提取數(shù)據(jù)的長(zhǎng)期信息;反向傳播神經(jīng)網(wǎng)絡(luò)(BP)[6]、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)[7]、長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)[8]、門控遞歸單元(GRU)[9]等深度學(xué)習(xí)算法復(fù)雜,具有更好的長(zhǎng)短期信息學(xué)習(xí)性能,適合對(duì)大數(shù)據(jù)集進(jìn)行訓(xùn)練,非線性擬合能力強(qiáng),但模型更像一個(gè)“黑盒”,可解釋性差,而且參數(shù)過(guò)多、收斂速度慢。
由于負(fù)荷的波動(dòng)性較強(qiáng)且受外部因素影響較大,單一的模型難以滿足負(fù)荷預(yù)測(cè)高精度的實(shí)際需要,學(xué)者們提出了組合預(yù)測(cè)模型。譚海旺等[10]利用極端梯度提升樹(extreme gradient boosting trees,XGBoost)對(duì)光伏發(fā)電功率進(jìn)行初步預(yù)測(cè)并將預(yù)測(cè)值作為增加的特征值,再分別建立XGBoost模型和LSTM模型,利用誤差倒數(shù)法整合兩個(gè)模型的預(yù)測(cè)值,試驗(yàn)表明組合模型較單一模型預(yù)測(cè)性能更好;邵必林等[11]引入變分模態(tài)分解(VMD)算法將負(fù)荷數(shù)據(jù)分解為平穩(wěn)數(shù)據(jù),然后通過(guò)融合注意力機(jī)制的深度雙向門控循環(huán)單元神經(jīng)網(wǎng)絡(luò)(IDBiGRU)對(duì)分解后的數(shù)據(jù)進(jìn)行預(yù)測(cè),降低了原始負(fù)荷數(shù)據(jù)中噪音的影響,提高了負(fù)荷預(yù)測(cè)的精度和訓(xùn)練速度,但VMD算法性能受K參數(shù)選取的影響較大;陳嵐等[12] 利用 XGBoost 進(jìn)行特征篩選,降低數(shù)據(jù)維度,再利用改進(jìn)的 LSTNet 進(jìn)行預(yù)測(cè),預(yù)測(cè)準(zhǔn)確性有所提高,但試驗(yàn)證明隨著時(shí)間步增加,各個(gè)模型的預(yù)測(cè)誤差都逐漸增大。
通過(guò)上述研究發(fā)現(xiàn),對(duì)于影響天然氣小時(shí)負(fù)荷的外部因素,通常僅關(guān)注時(shí)間、氣象[13]等,忽略了同一天中不同時(shí)刻負(fù)荷的變化規(guī)律,因此本文中提出了“小時(shí)影響度”這一新特征衡量24個(gè)不同時(shí)刻對(duì)負(fù)荷變化的影響程度。此外,在負(fù)荷預(yù)測(cè)方面,存在單一樹模型難以提取長(zhǎng)期信息、預(yù)測(cè)精度受限于中小數(shù)據(jù)集,普通神經(jīng)網(wǎng)絡(luò)模型可解釋性差、訓(xùn)練速度慢以及目前的預(yù)測(cè)模型往往在多步預(yù)測(cè)中表現(xiàn)不佳等不足。NBEATSx網(wǎng)絡(luò)是在N-BEATS(neural basis expansion analysis for interpretable time series forecasting)基礎(chǔ)上的擴(kuò)展,它是一種僅通過(guò)全連接層實(shí)現(xiàn)時(shí)間序列預(yù)測(cè)的方法,其可解釋性的結(jié)構(gòu)可看作是模型自身實(shí)現(xiàn)對(duì)輸入數(shù)據(jù)的分解處理,使得模型能夠在負(fù)荷數(shù)據(jù)的單步與多步預(yù)測(cè)中具有更好的精度;XGBoost是一個(gè)強(qiáng)大的集成學(xué)習(xí)算法,它通過(guò)將多個(gè)弱分類器(決策樹)組合起來(lái),逐步減少預(yù)測(cè)誤差,提高整體性能,并且具有出色的特征處理能力與可解釋性。
2 基本原理
2.1 STL分解模型
STL分解算法是一種基于Loess局部加權(quán)回歸平滑估計(jì)技術(shù)進(jìn)行時(shí)間序列分解的算法,可以處理任何類型的時(shí)間序列數(shù)據(jù),將其分為趨勢(shì)分量、周期分量與殘差分量。STL算法操作簡(jiǎn)單,參數(shù)少,計(jì)算速度快,分量具有可解釋性,而且不需要困擾于對(duì)分量數(shù)量的選擇,對(duì)異常值不敏感,魯棒性好。STL通常利用加法原理對(duì)時(shí)序數(shù)據(jù)進(jìn)行分解,表達(dá)式 [14]為
Yt=Tt+St+It.(1)
式中,Yt為t時(shí)刻的觀測(cè)值;Tt、St、It分別為 t時(shí)刻的趨勢(shì)分量值、周期分量值、殘差分量值。
2.2 XGBoost樹模型
XGBoost是一種梯度提升(gradient boosting)樹模型,采用了前向加法思想,是對(duì)GBDT的改進(jìn),將GBDT的目標(biāo)函數(shù)從一階導(dǎo)數(shù)信息延伸到二階導(dǎo)數(shù),使得在提高精度的同時(shí)提高了模型的訓(xùn)練速度。XGBoost模型的集成預(yù)測(cè)值 [10]為
i=∑Kk=1fk(xi).(2)
式中,xi為第i個(gè)樣本的特征向量;i為第i個(gè)樣本的模型預(yù)測(cè)值;fk為第k棵樹的預(yù)測(cè)函數(shù);K為樹的個(gè)數(shù)。
以第t步的模型(第t棵樹)為例,第i個(gè)樣本的目標(biāo)函數(shù)O(t) [10]為
O(t)=L(t)+Ω(ft)=∑ni=1l(yi,(t-1)i+ft(xi))+γT+12λ∑Tj=1w2j. (3)
式中,(t-1)i為第i個(gè)樣本第t-1棵樹的預(yù)測(cè)值;yi為第i個(gè)樣本的真實(shí)值;n為樣本總數(shù);γ為加入新葉子節(jié)點(diǎn)引入的復(fù)雜度代價(jià);T為葉子數(shù)量;λ為加入新葉分?jǐn)?shù)引入的復(fù)雜度代價(jià);wj為葉分?jǐn)?shù)的L2正則項(xiàng)。
將式(3)二階泰勒展開,得到最優(yōu)化目標(biāo)函數(shù)為
O(t)≈∑ni=1l(yi,(t-1)i)+gift(xi)+12hif2t(xi)+γT+12λ∑Tj=1w2j≈∑ni=1giwq(xi)+12hiw2q(xi)+γT+12λ∑Tj=1w2j ??=∑Tj=1Gjwj+12(Hj+λ)w2j+γT. (4)
其中
Gj=∑i∈Ijgi, Hj=∑i∈Ijhi,gi=(t-1)l(yi,(t-1)),hi=2(t-1)l(yi,(t-1)).
式中,wq(xi)為第t棵樹的葉子節(jié)點(diǎn)值。
目標(biāo)函數(shù)一階導(dǎo)數(shù)為零時(shí),解得最優(yōu)值 [10]為
w*j=-GjHj+λ,O*=-12∑Tj=1G2jHj+λ+γT.(5)
此外,XGBoost的可解釋性允許模型輸出特征的全局重要度,在單個(gè)決策樹中利用每個(gè)特征對(duì)分割點(diǎn)改進(jìn)性能度量的量來(lái)計(jì)算特征重要度,由節(jié)點(diǎn)加權(quán)和記錄次數(shù)[12],用特征在所有樹中重要度的平均值來(lái)衡量全局重要度,輸出重要度得分(Fscore)。重要度得分表明了特征因素對(duì)預(yù)測(cè)目標(biāo)值的影響程度,可依據(jù)重要度得分對(duì)特征因素進(jìn)行篩選。
2.3 NBEATSx神經(jīng)網(wǎng)絡(luò)模型
NBEATSx是一個(gè)基于后向和前向殘差鏈路和一個(gè)非常深的全連接層堆棧的深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),用來(lái)解決單變量時(shí)間序列點(diǎn)預(yù)測(cè)問(wèn)題[15]。一個(gè)完整的NBEATSx網(wǎng)絡(luò)結(jié)構(gòu)由多個(gè)堆棧(stack)組成,一個(gè)堆棧又由多個(gè)塊(block)組成,每個(gè)塊的基本構(gòu)件是基于非線性激活函數(shù)的多層全連接網(wǎng)絡(luò)(FCNN)。NBEATSx模型的整體結(jié)構(gòu)如圖1所示。
(1)塊。以模型第s個(gè)堆棧里第m個(gè)塊為例,由FCNN通過(guò)第s個(gè)堆棧里第m個(gè)塊的輸入窗口序列值
ybacks,m以及對(duì)應(yīng)的外部變量矩陣Xm學(xué)習(xí)到線性適應(yīng)于后向與前向預(yù)測(cè)擴(kuò)張系數(shù)的隱藏層信息hs,m,得到擴(kuò)張系數(shù)后,執(zhí)行兩種形式[15]的信息轉(zhuǎn)換,輸出后向與前向預(yù)測(cè)值backs,m、fors,m:
backs,m=Vback s,mθback s,m,fors,m=Vfors,mθf(wàn)ors,m,Vback s,m∈RL×Ns,Vfor s,m∈RH×Ns,θback s,m, θf(wàn)or s,m∈RNs. (6)
式中,θback s,m、θf(wàn)or s,m分別為后向、前向預(yù)測(cè)擴(kuò)張系數(shù);Ns為堆?;S度;Vback s,m,Vfor s,m 分別為塊中對(duì)應(yīng)于后向預(yù)測(cè)、前向預(yù)測(cè)的基函數(shù);H為預(yù)測(cè)窗口長(zhǎng)度;L為輸入窗口長(zhǎng)度,L∈(2H~7H)。
(2)堆棧。使用雙重殘差連接原理將塊堆疊成堆棧,第s個(gè)堆棧里的信息轉(zhuǎn)換 [15]為
ybacks,m+1=ybacks,m-backs,m ,fors=∑Mm=1fors,m.(7)
式中,fors為第s個(gè)堆棧的未來(lái)預(yù)測(cè)值;M為第s個(gè)堆棧中塊的數(shù)量。
(3)模型預(yù)測(cè)值。多個(gè)堆?;陔p重殘差連接原理堆疊成完整的NBEATSx模型,模型最終預(yù)測(cè)值 [15]為
for=∑Ss=1fors. (8)
式中,S為一個(gè)完整NBEATSx結(jié)構(gòu)中堆棧數(shù)量;for為NBEATSx模型預(yù)測(cè)值。
(4)可解釋性結(jié)構(gòu)。NBEATSx網(wǎng)絡(luò)配置有可解釋的結(jié)構(gòu),通過(guò)設(shè)置不同的表示趨勢(shì)性(T)或季節(jié)性(S)的基函數(shù)來(lái)實(shí)現(xiàn)。不同堆棧預(yù)測(cè)的連接可以看作原始序列的順序分解,能夠很好地反映小時(shí)天然氣負(fù)荷數(shù)據(jù)的趨勢(shì)性與周期性,并可作為單獨(dú)的可解釋性輸出。以塊中的前向預(yù)測(cè)為例,后向預(yù)測(cè)中的函數(shù)處理過(guò)程與前向預(yù)測(cè)相同,趨勢(shì)性、季節(jié)性、外部變量堆棧的預(yù)測(cè)原理[15]為
tT=[0,1,2,…,H-2,H-1]H ,trends,m=∑Npoli=0tiθtrend s,m,i≡Tθtrends,m,T∈RH×(Npol+1) .(9)
seass,m=∑H2-1i=0[cos(2πitNhr)θseass,m,i+sin2πitNhrθseass,m,i+H/2]≡Sθseass,m,S∈RH×(H-1).(10)
exogs,m=∑Nxi=0xiθexogs,m,i≡Xθexogs,m.(11)
式中,tT為時(shí)間向量t的轉(zhuǎn)置; T為序列趨勢(shì)性的多項(xiàng)式基函數(shù);Npol為趨勢(shì)多項(xiàng)式函數(shù)的最大次數(shù);
θtrends,m、θseass,m、θexogs,m分別為與趨勢(shì)性、季節(jié)性、外部變量相關(guān)的擴(kuò)張系數(shù);S為序列季節(jié)性的基函數(shù); Nhr為超參數(shù),控制諧波振幅;X為外部變量矩陣;Nx為外部變量個(gè)數(shù);trends,m、seass,m、exogs,m分別為趨勢(shì)性、季節(jié)性、考慮外部變量影響的預(yù)測(cè)值。
2.4 STL-XGBoost-NBEATSx組合預(yù)測(cè)模型
STL-XGBoost-NBEATSx組合模型的整體預(yù)測(cè)流程如下,模型結(jié)構(gòu)如圖2所示。
(1)收集天然氣小時(shí)負(fù)荷實(shí)際觀測(cè)數(shù)據(jù)與相關(guān)外部影響因素?cái)?shù)據(jù),將整體數(shù)據(jù)集進(jìn)行預(yù)處理后劃分為訓(xùn)練集與測(cè)試集;
(2)先將預(yù)處理后的負(fù)荷數(shù)據(jù)集與特征數(shù)據(jù)集一并輸入到XGBoost中進(jìn)行特征篩選,對(duì)模型輸出的不同特征重要度得分進(jìn)行排序,去除特征重要度得分較低的變量,以實(shí)現(xiàn)對(duì)特征數(shù)據(jù)集的降維,再將降維后的數(shù)據(jù)集輸入到NBEATSx中訓(xùn)練,輸出優(yōu)化后的NBEATSx模型預(yù)測(cè)值1;
(3)將負(fù)荷數(shù)據(jù)集與特征數(shù)據(jù)集輸入到STL模型中進(jìn)行分解,降低數(shù)據(jù)的復(fù)雜度和噪音影響,再將分解后的趨勢(shì)性分量、季節(jié)性分量與殘差分量數(shù)據(jù)集分別輸入到XGBoost進(jìn)行預(yù)測(cè),各分量的預(yù)測(cè)結(jié)果線性組合得出STL-XGBoost模型預(yù)測(cè)結(jié)果2;
(4)通過(guò)方差倒數(shù)法將預(yù)測(cè)結(jié)果1與預(yù)測(cè)結(jié)果2組合,得到最終的STL-XGBoost-NBEATSx組合模型預(yù)測(cè)結(jié)果,計(jì)算過(guò)程 [16]為
ωi=Q-1i∑mi=1Q-1i ,=ω11+ω22.(12)
式中,ωi為第i個(gè)模型的權(quán)重;m為組合模型數(shù)量;Qi為第i個(gè)模型的預(yù)測(cè)誤差平方和。
3 模型構(gòu)建與參數(shù)設(shè)置
3.1 小時(shí)天然氣負(fù)荷影響因素
采集西安市灞橋區(qū)某天然氣供應(yīng)站2021年6月1日至2021年8月10日每小時(shí)的天然氣負(fù)荷數(shù)據(jù)以及對(duì)應(yīng)的氣象數(shù)據(jù)、日期數(shù)據(jù)作為試驗(yàn)數(shù)據(jù)集,共71 d,每天采樣24次,共計(jì)1 704個(gè)樣本點(diǎn),天然氣采集點(diǎn)處的工況溫度約為13 ℃,工況壓力約為2.33 MPa。選取最后一周(7 d)的168條數(shù)據(jù)作為測(cè)試集,其余的1 536條數(shù)據(jù)作為訓(xùn)練集。
由于小時(shí)天然氣負(fù)荷量會(huì)受到人們工作時(shí)間與休息時(shí)間的影響,例如白天對(duì)天然氣的需求量大于晚上,休息時(shí)間的需求量大于工作時(shí)間,因此根據(jù)原始?xì)v史負(fù)荷數(shù)據(jù)構(gòu)建了“小時(shí)影響度(hourly influence)”這一新特征,將訓(xùn)練集中天然氣每一天同一個(gè)小時(shí)的負(fù)荷數(shù)據(jù)求和,取訓(xùn)練集中所有天各個(gè)小時(shí)天然氣負(fù)荷總量在所有24小時(shí)天然氣負(fù)荷總量中所占的比重為天然氣負(fù)荷在相應(yīng)時(shí)刻的小時(shí)影響度,計(jì)算式為
ωi=∑nj=1yij-min∑nj=1∑23i=0yijmax∑nj=1∑23i=0yij-min∑nj=1∑23i=0yij .(13)
式中,ωi為負(fù)荷數(shù)據(jù)在第i時(shí)刻的小時(shí)影響度;yij為第j天第i時(shí)刻的負(fù)荷數(shù)據(jù);n為訓(xùn)練集中的總天數(shù)。
計(jì)算結(jié)果如圖3所示,小時(shí)天然氣負(fù)荷數(shù)據(jù)的“小時(shí)影響度”在每日0~6時(shí)刻小于0.1,但在10~21時(shí)刻卻全部大于0.9。這符合人們夜晚休息時(shí)需求量小于白天工作時(shí)的實(shí)際情況。
因?yàn)闅v史負(fù)荷能夠明顯反映負(fù)荷的變化規(guī)律,因此把歷史負(fù)荷值作為預(yù)測(cè)模型的輸入特征,為了反映負(fù)荷數(shù)據(jù)的長(zhǎng)期和短期關(guān)系,將每一負(fù)荷值的前24個(gè)小時(shí)的天然氣歷史負(fù)荷數(shù)據(jù)全部選取作為小時(shí)負(fù)荷預(yù)測(cè)的外部特征變量。
此外,選取氣象數(shù)據(jù):氣溫(℃)、濕度(%)、降水量(mm/h)、地面風(fēng)速(m/s)。日期類型數(shù)據(jù):工作日為0、周末與節(jié)假日為1,以及24個(gè)小時(shí)歷史負(fù)荷值(-i 時(shí)刻/103 m3,i=1,2,…,24)共同構(gòu)建一個(gè)含30個(gè)特征變量的天然氣負(fù)荷數(shù)據(jù)初步特征集。
由于各特征值自身之間以及與負(fù)荷目標(biāo)值之間的量綱不同,為了避免其對(duì)模型預(yù)測(cè)性能的影響,方便模型處理數(shù)據(jù),提高模型收斂速度,將模型所有的輸入數(shù)據(jù)進(jìn)行歸一化處理,在模型輸出歸一化預(yù)測(cè)值后再將其還原。歸一化表達(dá)式為
i=xi-xminxmax-xmin .(14)
式中,i為第i個(gè)樣本歸一化后的值;xi為第i個(gè)樣本真實(shí)值;xmax和xmin分別為樣本中最大值和最小值。
3.2 基于XGBoost模型的特征篩選
特征變量多少以及自身的相關(guān)關(guān)系會(huì)影響模型的訓(xùn)練速度與精度,為了掌握不同特征因素對(duì)負(fù)荷的影響程度,有效提取和選擇輸入特征提高預(yù)測(cè)模型的性能,通過(guò)XGBoost模型的可解釋模塊輸出每個(gè)特征的全局重要度,以實(shí)現(xiàn)特征分析與選擇。
使用網(wǎng)格搜索和交叉驗(yàn)證(GridSearchCV)方法對(duì)XGBoost的主要超參數(shù)進(jìn)行尋優(yōu),最終設(shè)置模型中樹的數(shù)量為100,樹的最大深度為3,樹的學(xué)習(xí)率為0.05,這幾個(gè)參數(shù)主要影響了模型的收斂速度與預(yù)測(cè)精度。
XGBoost模型輸入特征變量為氣溫(℃)、濕度(%)、降水量(mm/h),地面風(fēng)速(m/s),日期類型、小時(shí)影響度、-i時(shí)刻(103 m3,i=1,2,…,24)歷史負(fù)荷值,其編號(hào)分別為f1、f2、f3、f4、f5、f6、f7~f30。
圖4為模型最終輸出的排名前15的特征全局重要度。
由圖4可知,提出的新特征“小時(shí)影響度”對(duì)天然氣小時(shí)負(fù)荷預(yù)測(cè)的重要度排第二,僅次于前1個(gè)時(shí)刻的歷史負(fù)荷值對(duì)其的影響程度,表明了新特征對(duì)小時(shí)負(fù)荷預(yù)測(cè)的重要價(jià)值。前3個(gè)時(shí)刻的歷史負(fù)荷值與氣溫等影響因素的重要度依次排名之后,為了降低輸入數(shù)據(jù)維度,提高預(yù)測(cè)速度,去除重要度較低(重要度得分低于10)的特征,將圖4中展現(xiàn)的剩余15個(gè)特征用作NBEATSx模型的外部變量輸入數(shù)據(jù)。
3.3 基于NBEATSx模型的負(fù)荷預(yù)測(cè)
選擇季節(jié)堆棧(seasonality)、趨勢(shì)堆棧(trend)與外部變量堆棧(exogenous)作為NBEATSx神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu),用來(lái)反映天然氣小時(shí)負(fù)荷數(shù)據(jù)的趨勢(shì)性與季節(jié)性以及外部特征變量對(duì)負(fù)荷的影響情況;由于小時(shí)天然氣負(fù)荷數(shù)據(jù)呈現(xiàn)以日為周期的現(xiàn)象,將預(yù)測(cè)窗口步長(zhǎng)H設(shè)置為24,同時(shí)為了更好地提取數(shù)據(jù)的長(zhǎng)期信息,將輸入窗口長(zhǎng)度設(shè)置為7H,即168;采用SELU激活函數(shù)能夠?qū)ι窠?jīng)網(wǎng)絡(luò)進(jìn)行自歸一化,使得模型收斂速度更快且不會(huì)出現(xiàn)梯度消失與爆炸的問(wèn)題,同時(shí)SELU激活函數(shù)必須配備lecun normal函數(shù)進(jìn)行權(quán)重初始化。經(jīng)過(guò)尋優(yōu),各堆棧中主要超參數(shù)設(shè)置:輸入窗口長(zhǎng)度L為168,預(yù)測(cè)窗口長(zhǎng)度H為24,單個(gè)堆棧的塊數(shù)為2,單個(gè)塊中全連接網(wǎng)絡(luò)層數(shù)為2,隱藏層神經(jīng)元個(gè)數(shù)為64,采樣頻率為24,批處理大小為512,趨勢(shì)性多項(xiàng)式次數(shù)為2,周期性傅里葉基數(shù)為1,迭代次數(shù)為25 000,優(yōu)化器為Adam,學(xué)習(xí)率為0.002。
3.4 基于STL-XGBoost模型的負(fù)荷預(yù)測(cè)
先使用STL模型將天然氣小時(shí)負(fù)荷數(shù)據(jù)同特征集數(shù)據(jù)一同分解為趨勢(shì)分量、季節(jié)分量與殘差分量,以小時(shí)負(fù)荷數(shù)據(jù)為例,經(jīng)過(guò)STL分解后的結(jié)果如圖5所示。將3個(gè)分量數(shù)據(jù)集分別輸入到XGBoost模型進(jìn)行預(yù)測(cè),最后將預(yù)測(cè)結(jié)果線性相加得到STL-XGBoost負(fù)荷預(yù)測(cè)結(jié)果。對(duì)3種不同分量數(shù)據(jù)集預(yù)測(cè)任務(wù)的XGBoost超參數(shù)進(jìn)行尋優(yōu),最優(yōu)參數(shù)設(shè)置如表1所示。
4 實(shí)例仿真與對(duì)比分析
為了驗(yàn)證所提模型對(duì)小時(shí)天然氣負(fù)荷預(yù)測(cè)的準(zhǔn)確性與可靠性,將文中模型與當(dāng)前一些經(jīng)典單一模型和組合模型進(jìn)行仿真對(duì)比分析,均采用滑動(dòng)窗口的數(shù)據(jù)輸入方式實(shí)現(xiàn)模型的多步預(yù)測(cè)。
4.1 評(píng)價(jià)指標(biāo)
通過(guò)綜合分析各模型的訓(xùn)練時(shí)間、均方誤差(mean square error,Mse)、平均絕對(duì)誤差(mean absolute error,Mae)、平均絕對(duì)百分比誤差(mean absolute percentage error,Mape)以及決定系數(shù)(R2)來(lái)評(píng)價(jià)模型的整體預(yù)測(cè)性能。其中訓(xùn)練時(shí)間越短, Mse、Mae、Mape越小,模型的預(yù)測(cè)誤差越小,性能越好。決定系數(shù)在0~1之間,該值越接近1,表明預(yù)測(cè)模型能夠更好地解釋觀測(cè)數(shù)據(jù)的波動(dòng)性,對(duì)真實(shí)數(shù)據(jù)的擬合程度更好。各評(píng)價(jià)指標(biāo)計(jì)算式為
Mse=1n∑ni=1(i-yi)2, ?Mae=1n∑ni=1i-yi,Mape=1n∑ni=1i-yiyi,R2=1-∑ni=1(i-)2∑ni=1(yi-)2 .(15)
式中,n為測(cè)試樣本數(shù);yi和i分別為i時(shí)刻的負(fù)荷真實(shí)值和負(fù)荷預(yù)測(cè)值; 為測(cè)試集中負(fù)荷真實(shí)值的均值。
4.2 消融試驗(yàn)
通過(guò)消融試驗(yàn)來(lái)驗(yàn)證XGBoost特征篩選對(duì)NBEATSx網(wǎng)絡(luò)預(yù)測(cè)的有效性以及“小時(shí)影響度”對(duì)模型預(yù)測(cè)性能的重要影響。表2為消融試驗(yàn)結(jié)果。由表2可以看出,經(jīng)過(guò)XGBoost模型進(jìn)行特征篩選后,NBEATSx模型的整體訓(xùn)練速度都有所提高,經(jīng)過(guò)特征篩選且加入“小時(shí)影響度”這一特征的NBEATSx模型的預(yù)測(cè)精度達(dá)到最高,其中Mape、Mse、Mae分別降低了6.05%、7.64%、4.32%,訓(xùn)練時(shí)間降低了74.51%,決定系數(shù)也有所提高,這意味著通過(guò)XGBoost進(jìn)行特征篩選提高了NBEATSx模型的預(yù)測(cè)性能。
4.3 單一模型預(yù)測(cè)結(jié)果
分別選取ARIMA、SVR、樹模型中的lightGBM、XGBoost以及神經(jīng)網(wǎng)絡(luò)模型中的RNN、LSTM、GRU與NBEATSx的預(yù)測(cè)結(jié)果進(jìn)行比較。各模型均采用網(wǎng)格搜索與GridSearchCV進(jìn)行參數(shù)尋優(yōu),并設(shè)置窗口滑動(dòng)完成模型的168步預(yù)測(cè)。
圖6(a)是將NBEATSx(有特征篩選,有“小時(shí)影響度”)模型與其他神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)結(jié)果進(jìn)行對(duì)比,圖6(b)是將其與非神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)結(jié)果進(jìn)行對(duì)比,表3為各單一模型的預(yù)測(cè)誤差評(píng)價(jià)指標(biāo)對(duì)比。
分析圖6(a)可知,NBEATSx能比其他神經(jīng)網(wǎng)絡(luò)更好地?cái)M合負(fù)荷波動(dòng)較大的波峰與波谷處;分析圖6(b)可知,XGBoost模型在負(fù)荷曲線變化平穩(wěn)階段有著優(yōu)秀的擬合能力,但對(duì)負(fù)荷數(shù)據(jù)波動(dòng)部分的反映能力仍不如NBEATSx模型。
分析表3可知,在單一模型的對(duì)比中,基于GBDT框架的lightGBM與XGBoost模型發(fā)揮了樹模型擅長(zhǎng)處理多維特征變量的優(yōu)勢(shì),整體預(yù)測(cè)性能優(yōu)于經(jīng)典的RNN、LSTM、GRU神經(jīng)網(wǎng)絡(luò)與SVR模型;此外,由于XGBoost采用預(yù)排序算法,能夠更精確地找出數(shù)據(jù)分裂點(diǎn),表現(xiàn)出比lightGBM更高的預(yù)測(cè)精度;兼具樹模型的可解釋性與神經(jīng)網(wǎng)絡(luò)模型的預(yù)測(cè)性能優(yōu)勢(shì)的NBEATSx模型在試驗(yàn)結(jié)果中表現(xiàn)最佳,與經(jīng)典神經(jīng)網(wǎng)絡(luò)中表現(xiàn)最好的GRU相比,
Mape降低了45.37%,Mse降低了55.96%,Mae降低了42.14%,R2提高了14.02%;與樹模型中表現(xiàn)最好的XGBoost相比,Mape降低了23.32%,Mse降低了35.39%,Mae降低了12.22%,R2提高了5.56%,說(shuō)明NBEATSx模型能夠更好地挖掘出時(shí)序負(fù)荷數(shù)據(jù)之間的復(fù)雜非線性關(guān)系以及負(fù)荷數(shù)據(jù)與外部特征變量之間的復(fù)雜相關(guān)性關(guān)系。
4.4 組合模型預(yù)測(cè)結(jié)果
合適的模型組合會(huì)提高單一模型的預(yù)測(cè)性能,為了證明所提模型組合的優(yōu)勢(shì),將XGBoost預(yù)測(cè)結(jié)果直接與經(jīng)過(guò)特征篩選后的NBEATSx預(yù)測(cè)結(jié)果通過(guò)方差倒數(shù)法進(jìn)行組合;另外,將經(jīng)由STL分解后的負(fù)荷數(shù)據(jù)分別輸入到單一模型預(yù)測(cè)試驗(yàn)中表現(xiàn)較好的GRU與XGBoost中進(jìn)行預(yù)測(cè);將這4種組合模型與本文中所提出的STL-XGBoost-NBEATSx模型的預(yù)測(cè)結(jié)果進(jìn)行對(duì)比,如圖7和表4所示。
由圖7可以看出,STL對(duì)輸入數(shù)據(jù)的分解降噪改善了XGBoost在波動(dòng)較大部分?jǐn)M合效果不好的情況,提高了波動(dòng)部分預(yù)測(cè)曲線的擬合度。而本文中提出的STL-XGBoost-NBEATSx模型的預(yù)測(cè)曲線與真實(shí)數(shù)據(jù)曲線的擬合效果最好,既發(fā)揮了XGBoost模型在數(shù)據(jù)變化平穩(wěn)部分的優(yōu)秀擬合能力,又結(jié)合了NBEATSx模型在數(shù)據(jù)波動(dòng)性較大情況下的擬合優(yōu)勢(shì)。
分析表4可知,組合模型的預(yù)測(cè)性能整體優(yōu)于單一模型。經(jīng)STL分解后的GRU預(yù)測(cè)精度雖然高于單一GRU,但仍低于單一NBEATSx,這是因?yàn)镹BEATSx模型不同功能的堆棧結(jié)構(gòu)可以看作對(duì)輸入數(shù)據(jù)進(jìn)行分解與預(yù)測(cè)的結(jié)合,使得訓(xùn)練過(guò)程更簡(jiǎn)化,訓(xùn)練結(jié)果更精確。
單純將XGBoost與NBEATSx組合后,由于單一XGBoost模型預(yù)測(cè)精度不足,與NBEATSx的學(xué)習(xí)能力差距較大,從而導(dǎo)致組合模型的Mape反倒比NBEATSx(特征篩選后)要高,預(yù)測(cè)效果不能達(dá)到預(yù)期。由表4可知,將原始數(shù)據(jù)經(jīng)由STL分解,再輸入到XGBoost中進(jìn)行預(yù)測(cè),減弱了輸入數(shù)據(jù)中噪音對(duì)模型預(yù)測(cè)的影響,所得STL-XGBoost模型的預(yù)測(cè)誤差比NBEATSx模型更低,有效提升了XGBoost模型的預(yù)測(cè)性能。
STL-XGBoost-NBEATSx組合預(yù)測(cè)模型的子模型為優(yōu)化后的NBEATSx與優(yōu)化后的STL-XGBoost,滿足差異化大、準(zhǔn)確性高的條件,結(jié)合了兩類子模型的優(yōu)勢(shì),表現(xiàn)出最優(yōu)的預(yù)測(cè)性能。與單一的XGBoost相比,Mape、Mse和Mae分別下降了38.85%、52.68%和29%;與單一的NBEATSx相比,Mape、Mse和Mae分別下降了25.07%、32.35%和22.62%,預(yù)測(cè)誤差大大降低。模型的決定系數(shù)高達(dá)0.935,表明該模型能夠很好地?cái)M合原始負(fù)荷數(shù)據(jù)。圖8為組合模型STL-XGBoost-NBEATSx與子模型的預(yù)測(cè)誤差對(duì)比。由圖8可以看出,組合模型的誤差波動(dòng)明顯減小。在序列隨機(jī)性與波動(dòng)性較強(qiáng)的情況下,組合模型能夠有效地提高模型的穩(wěn)定性與預(yù)測(cè)精度。
5 結(jié) 論
(1)針對(duì)小時(shí)負(fù)荷預(yù)測(cè)引入“小時(shí)影響度”這一特征,可作為特征篩選后的重要外部變量,有效提高模型的預(yù)測(cè)效率。
(2)STL分解可以減小輸入數(shù)據(jù)的復(fù)雜程度與噪聲,解決XGBoost對(duì)數(shù)據(jù)敏感的問(wèn)題,極大提高了XGBoost模型預(yù)測(cè)的穩(wěn)定性與準(zhǔn)確性。
(3)STL-XGBoost-NBEATSx組合模型結(jié)合了樹模型與神經(jīng)網(wǎng)絡(luò)模型的優(yōu)勢(shì),不僅有良好的可解釋性,且相較于單一模型與其他組合模型,能更好地處理負(fù)荷時(shí)間序列中的線性與非線性特征,對(duì)負(fù)荷數(shù)據(jù)的平穩(wěn)性與波動(dòng)性具有更好的表征能力,能夠有效減小負(fù)荷預(yù)測(cè)的誤差,提高模型的預(yù)測(cè)精準(zhǔn)性與預(yù)測(cè)速率,模型決定系數(shù)較高,預(yù)測(cè)性能可以滿足天然氣供輸部門的精度需求。
(4)使用STL-XGBoost-NBEATSx預(yù)測(cè)模型進(jìn)行短期預(yù)測(cè)可以提供更詳細(xì)和精確的負(fù)荷信息,幫助制定準(zhǔn)確的運(yùn)營(yíng)計(jì)劃,進(jìn)行實(shí)時(shí)預(yù)測(cè)可以支持實(shí)時(shí)能源調(diào)度和供應(yīng)鏈管理。
參考文獻(xiàn):
[1] 劉合,梁坤,張國(guó)生,等.碳達(dá)峰、碳中和約束下我國(guó)天然氣發(fā)展策略研究[J].中國(guó)工程科學(xué),2021,23(6):33-42.
LIU He, LIANG Kun, ZHANG Guosheng, et al. Research on Chinas natural gas development strategy under the constraints of carbon peak and carbon neutrality[J]. Chinese Engineering Science,2021,23(6):33-42.
[2] 王坤,楊濤,梁坤,等.碳達(dá)峰碳中和戰(zhàn)略下天然氣的能源優(yōu)勢(shì)與發(fā)展建議[J].能源與節(jié)能,2023(3):27-31.
WANG Kun, YANG Tao, LIANG Kun, et al. Energy advantages and development suggestions of natural gas under the carbon peaking and carbon neutrality strategy[J]. Energy & Energy Conservation,2023(3):27-31.
[3] YOUSUF M U, AL-BAHADLY I, AVCI E. Wind speed prediction for small sample dataset using hybrid first-order accumulated generating operation-based double exponential smoothing model[J]. Energy Science Engineering,2022,10(3):726-739.
[4] 李焱,賈雅君,李磊,等.基于隨機(jī)森林算法的短期電力負(fù)荷預(yù)測(cè)[J].電力系統(tǒng)保護(hù)與控制,2020,48(21):117-124.
LI Yan, JIA Yajun, LI Lei, et al. Short-term power load forecasting based on random forest algorithm[J]. Protection and Control of Modern Power Systems,2020,48(21):117-124.
[5] KIHAN K, JIN H. A study on the development of the short-term photovoltaic power forecasting system using support vector regression (SVR)[J]. Journal of the Korean Institute of Illuminating and Electrical Installation Engineers,2019,33(6):42-48.
[6] 竇益華,張佳強(qiáng),李國(guó)亮,等.基于優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的連續(xù)管疲勞壽命預(yù)測(cè)[J].石油機(jī)械,2023,51(10):144-149.
DOU Yihua, ZHANG Jiaqiang, LI Guoliang, et al. Fatigue life prediction of coiled tubing based on optimized BP neural network[J].China Petroleum Machinery,2023,51(10):144-149.
[7] AHN H K, PARK N. DeepRNN-based photovoltaic power short-term forecast using power IoT sensors[J]. Energies,2021,14(2):436.
[8] 宋先知,朱碩,李根生,等.基于BP-LSTM雙輸入網(wǎng)絡(luò)的大鉤載荷與轉(zhuǎn)盤扭矩預(yù)測(cè)[J].中國(guó)石油大學(xué)學(xué)報(bào)(自然科學(xué)版),2022,46(2):76-84.
SONG Xianzhi, ZHU Shuo, LI Gensheng, et al. Prediction of hook load and rotary drive torque during well-drilling using a BP-LSTM network[J]. Journal of China University of Petroleum (Edition of Natural Science), 2022,46(2):76-84.
[9] JUNG S, MOON J, PARK S, et al. An attention-based multilayer GRU model for multistep-ahead short-term load forecasting[J]. Sensors,2021,21(5):1639.
[10] 譚海旺,楊啟亮,邢建春,等.基于XGBoost-LSTM組合模型的光伏發(fā)電功率預(yù)測(cè)[J].太陽(yáng)能學(xué)報(bào), 2022,43(8):75-81.
TAN Haiwang, YANG Qiliang, XING Jianchun, et al. PV output prediction based on XGBoost-LSTM combination model[J]. Acta Energiae Solaris Sinica,2022,43(8):75-81.
[11] 邵必林,嚴(yán)義川,曾卉玢.注意力機(jī)制下的VMD-IDBiGRU負(fù)荷預(yù)測(cè)模型[J].電力系統(tǒng)及其自動(dòng)化學(xué)報(bào),2022,34(10):120-128.
SHAO Bilin, YAN Yichuan, ZENG Huibin. VMD-IDBiGRU load forecasting model under attention mechanism[J]. Proceedings of the CSU-EPSA,2022,34(10):120-128.
[12] 陳嵐,張華琳,汪波,等.基于XGBoost和改進(jìn)LSTNet的氣溫預(yù)測(cè)設(shè)計(jì)[J].無(wú)線電工程,2023,53(3):591-600.
CHEN Lan, ZHANG Hualin, WANG Bo, et al. Temperature prediction design based on XGBoost and improved LSTNet[J]. Radio Engineering,2023,53(3):591-600.
[13] 范豆,范錦濤.城市燃?xì)庳?fù)荷影響因素及預(yù)測(cè)方法分析[J].云南化工,2018,45(11):113-114.
FAN Dou, FAN Jintao. Analysis of influencing factors and forecasting methods of city gas load[J].Yunnan Chemical Technology,2018,45(11):113-114.
[14] QIN L, LI W D, LI S J, et al. Effective passenger flow forecasting using STL and ESN based on two improvement strategies[J]. Neurocomputing,2019,356:244-256.
[15] OLIVARES K G, CHALLU C, MARCJASZ G, et al. Neural basis expansion analysis with exogenous variables: forecasting electricity prices with NBEATSx[J]. International Journal of Forecasting,2023,39(2):884-900.
[16] 詹英.組合預(yù)測(cè)方法在我國(guó)人均 GDP 預(yù)測(cè)中的應(yīng)用[D]. 武漢:華中師范大學(xué),2014.
ZHAN Ying. Application of combined forecasting method in Chinas per capita GDP forecast[D]. Wuhan:Central China Normal University,2014.
(編輯 沈玉英)
基金項(xiàng)目:國(guó)家自然科學(xué)基金項(xiàng)目(62072363)
第一作者:邵必林(1965-),男,教授,碩士,博士生導(dǎo)師,研究方向?yàn)榇髷?shù)據(jù)、人工智能、數(shù)據(jù)信息與管理、能源可持續(xù)發(fā)展。E-mail: sblin0462@sina.com。
通信作者:任萌(1999-),女,碩士研究生,研究方向?yàn)槟茉搭A(yù)測(cè)、機(jī)器學(xué)習(xí)、數(shù)據(jù)信息與管理。E-mail: rmeng0123@163.com。
引用格式:邵必林,任萌,田寧.基于STL-XGBoost-NBEATSx的小時(shí)天然氣負(fù)荷預(yù)測(cè)[J].中國(guó)石油大學(xué)學(xué)報(bào)(自然科學(xué)版),2024,48(3):170-179.
SHAO Bilin, REN Meng, TIAN Ning. Hourly natural gas load forecast based on ?STL-XGBoost-NBEATSx[J]. Journal of China University of Petroleum (Edition of Natural Science),2024,48(3):170-179.