昌玲,鄧國安
(湖南大唐先一科技有限公司,湖南 長沙 410000)
電力負(fù)荷預(yù)測是指以外界因素變化為基礎(chǔ),通過對歷史數(shù)據(jù)的處理和分析,利用數(shù)學(xué)手段建立特定的模型來預(yù)測未來電力負(fù)荷的需求情況[1]。電力負(fù)荷預(yù)測在保證電力系統(tǒng)規(guī)劃和可靠、經(jīng)濟(jì)性運(yùn)行方面具有十分重要的意義。尤其在售電側(cè)市場化的環(huán)境下,逐漸開展了大用戶或園區(qū)的短期負(fù)荷預(yù)測理論及方法的研究。
隨著科技園區(qū)的迅速建設(shè),園區(qū)的電力需求也在不斷的增長,電網(wǎng)對園區(qū)負(fù)荷的分配也不斷在改變。尤其是對于新建園區(qū),負(fù)荷缺失、異常等問題使電網(wǎng)對園區(qū)的負(fù)荷分配、園區(qū)需量上報和負(fù)荷預(yù)測存在干擾,針對這些問題,對已有相關(guān)電力數(shù)據(jù)進(jìn)行分析,通過調(diào)研園區(qū)用戶總體情況,結(jié)合用電政策、天氣數(shù)據(jù)和歷史負(fù)荷數(shù)據(jù)對異常數(shù)據(jù)進(jìn)行處理,在數(shù)據(jù)量較少的情況下進(jìn)行負(fù)荷預(yù)測。
目前為止常見的負(fù)荷預(yù)測方法主要包括基于時間序列[2]、支持向量機(jī)[3-5]、神經(jīng)網(wǎng)絡(luò)[6]、機(jī)器學(xué)習(xí)[7-8]等相關(guān)的負(fù)荷預(yù)測方法,這些方法為負(fù)荷預(yù)測提供了理論基礎(chǔ),但是目前已有的方法存在局限性。如時間序列方法的自回歸滑動平均模型(ARMA),僅能對少量影響負(fù)荷的因素以及樣本數(shù)據(jù)進(jìn)行處理,且要求歷史負(fù)荷序列平穩(wěn)性較高。支持向量機(jī)算法能夠解決負(fù)荷存在非線性、收斂于局部最優(yōu)的問題,但是若數(shù)據(jù)樣本太多會出現(xiàn)計算速度慢且預(yù)測精度低等問題。神經(jīng)網(wǎng)絡(luò)具有強(qiáng)大的非線性映射能力,但是存在學(xué)習(xí)速度慢,容易陷入局部最優(yōu)的缺陷。XGBoost是一種基于決策樹的機(jī)器學(xué)習(xí)算法,采用預(yù)排序法選擇最優(yōu)分割點(diǎn),數(shù)據(jù)量大時會比較耗時,影響訓(xùn)練速度。
科技園區(qū)的用電負(fù)荷主要為辦公設(shè)備負(fù)荷,空調(diào)負(fù)荷、照明、電梯等其他負(fù)荷,考慮空調(diào)負(fù)荷為科技園區(qū)受天氣影響變化最大的負(fù)荷,其次是辦公設(shè)備負(fù)荷受到使用人數(shù)的影響,有明顯的工作日及時間屬性。本文根據(jù)提取的某科技園區(qū)負(fù)荷數(shù)據(jù),結(jié)合園區(qū)調(diào)研信息數(shù)據(jù)及異常信息進(jìn)行數(shù)據(jù)預(yù)處理,增加時間相關(guān)特征量,采用K折交叉驗(yàn)證訓(xùn)練方法訓(xùn)練第一層特征,能避免因數(shù)據(jù)量較少導(dǎo)致的泛化能力差的問題,采用長短時間記憶網(wǎng)絡(luò)(LSTM)與LightGBM算法融合,即考慮一周內(nèi)的天氣與負(fù)荷的時序相關(guān)性,也考慮天氣數(shù)據(jù)與負(fù)荷的回歸特性,經(jīng)過算例分析,證明該融合算法在一定程度上能提高預(yù)測精度。
LightGBM(Light Gradient Boosting Machine)是一款基于決策樹算法的分布式梯度提升框架,是GBDT模型的變體,其基本原理與GBDT原理基本一致,通過將n顆弱回歸樹線性組合為強(qiáng)回歸樹,但是因?yàn)槠洳捎昧薍istogram和Leaf-wise決策樹優(yōu)化算法,能夠減小數(shù)據(jù)計算的內(nèi)存占用,保證在不犧牲速度的前提下盡可能地利用更多的數(shù)據(jù),能夠?qū)崿F(xiàn)并行計算學(xué)習(xí),支持大規(guī)模數(shù)據(jù)處理,具有更高的準(zhǔn)確度。
直方圖算法的基本思想如圖1所示,首先把連續(xù)的特征值離散化成k個整數(shù),并且構(gòu)造成一個寬度為k的直方圖。在遍歷數(shù)據(jù)的時候,根據(jù)離散化后的值作為索引在直方圖中累積統(tǒng)計量,當(dāng)完成一次數(shù)據(jù)遍歷后,直方圖已經(jīng)累積了需要的統(tǒng)計量,所以就可以根據(jù)直方圖的離散值,遍歷尋找最優(yōu)的分割點(diǎn)。
圖1 直方圖算法
LightGBM通過leaf-wise策略來生長樹。如圖2所示,每次分裂都是從當(dāng)前所有葉子中,找到分裂增益最大的一個葉子,然后分裂,如此循環(huán)。因此同Level-wise相比,在分裂次數(shù)相同的情況下,Leaf-wise可以降低更多的誤差,得到更好的精度。但是,當(dāng)樣本量較小的時候,leaf-wise可能會造成過擬合。但是,LightGBM可以通過調(diào)節(jié)額外的參數(shù)max_depth來限制樹的深度,從而避免過擬合。
圖2 leaf-wise生長策略
長短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM,Long Short-Term Memory)是循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種改進(jìn)模型[9]。原始的RNN在訓(xùn)練過程中,若輸入的時間序列過長或網(wǎng)絡(luò)層數(shù)過多,容易出現(xiàn)梯度爆炸或者梯度消失等問題,反向傳遞的損失值會隨層數(shù)的增加而越來越小,無法學(xué)習(xí)太長時間的序列特征。LSTM通過控制輸入、遺忘和輸出3個門能實(shí)現(xiàn)對記憶單元的讀取和修改,通過門控狀態(tài)來控制傳輸狀態(tài),記住需要長時間記憶的,忘記不重要的信息。最終反映到細(xì)胞狀態(tài)ct和輸出信號ht-1。LSTM的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 LSTM網(wǎng)絡(luò)結(jié)構(gòu)
圖3為xt一個時間單元的網(wǎng)絡(luò)循環(huán)結(jié)構(gòu),分別由細(xì)胞狀態(tài)更新、遺忘門、輸入門、輸出門等組成。其中,xt為t時刻的輸入,ct-1和ct分別為t-1和t時刻的狀態(tài)記憶量,ht-1和ht分別是t-1和t時刻的輸出量,ft、it、ot分別為遺忘門、輸入門、輸出門計算輸出的變量,σ和tanh分別為sigmoid函數(shù)和tanh激活函數(shù)。
網(wǎng)絡(luò)的計算公式如下:
式中,W f、W i、W g、W o分別為各控制門的相應(yīng)權(quán)重矩陣,bf、bi、bg、bo分別為各控制門的相應(yīng)偏置項(xiàng)。
基于LigtGBM預(yù)測未來24 h負(fù)荷模型的建立,其輸入輸出的結(jié)構(gòu)模式與LSTM結(jié)構(gòu)不同,無法記憶時序性的特征,只需針對預(yù)測時刻的相關(guān)特征建立對每小時負(fù)荷值的回歸預(yù)測??紤]數(shù)據(jù)可能存在不均勻性且避免過擬合,采用K折交叉驗(yàn)證的方法對數(shù)據(jù)進(jìn)行交叉訓(xùn)練,如圖4所示。首先按照K折的比例將原始數(shù)據(jù)集分為訓(xùn)練集和驗(yàn)證集,然后選取LigtGBM預(yù)測算法以交叉驗(yàn)證的方式對訓(xùn)練集進(jìn)行訓(xùn)練,將訓(xùn)練完成后的預(yù)測模型對驗(yàn)證集和測試集進(jìn)行預(yù)測。所得的測試集預(yù)測值即為各交叉驗(yàn)證模型預(yù)測值的平均值。
圖4 K折交叉驗(yàn)證
基于LSTM預(yù)測未來24 h負(fù)荷模型的建立,首先確定模型的輸入輸出,考慮待預(yù)測日24 h負(fù)荷值與前一周的負(fù)荷及天氣等特征有很大的相關(guān)性,由于LSTM網(wǎng)絡(luò)獨(dú)特的記憶結(jié)構(gòu),能夠直接將時間序列作為單個特征,所以選取前一周每天24 h的負(fù)荷相關(guān)特征數(shù)據(jù)作為輸入,預(yù)測輸出未來24 h的負(fù)荷值。其次確定基于LSTM預(yù)測模型的網(wǎng)絡(luò)架構(gòu),采用兩層LSTM網(wǎng)絡(luò)和一層全連接輸出層結(jié)構(gòu)。采用2個隱藏層可以提高對輸入特征的提取深度,通過全連接層映射輸出為負(fù)荷預(yù)測值。
多種較高準(zhǔn)確率、不同類型的預(yù)測算法融合可以提高模型的性能[10-11],LSTM算法能考慮負(fù)荷的時序特性,LightGBM能充分考慮負(fù)荷與天氣數(shù)據(jù)的相關(guān)性。兩算法的融合在處理特征的相關(guān)性方面能形成互補(bǔ)。圖5為模型融合的具體框架。
圖5 模型融合框架
模型融合算法流程如圖6所示。
圖6 算法流程
1)對獲取的負(fù)荷數(shù)據(jù)、氣象數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗,結(jié)合科技園區(qū)用能調(diào)研結(jié)果對數(shù)據(jù)進(jìn)行異常值修正或刪除。處理非數(shù)值特征量,將其進(jìn)行編碼至0—1,以便數(shù)值計算。增加特征量,針對數(shù)據(jù)集的時間構(gòu)造屬性,如節(jié)假日屬性、周屬性、小時屬性等。對所有數(shù)據(jù)進(jìn)行相關(guān)性分析,提取相關(guān)性較大的特征量。
2)將提取的特征量構(gòu)建LightGBM預(yù)測模型。根據(jù)數(shù)據(jù)集總數(shù)進(jìn)行訓(xùn)練集、驗(yàn)證集、測試集的劃分,采用K折交叉驗(yàn)證方法訓(xùn)練LightGBM預(yù)測模型,對數(shù)據(jù)集分別訓(xùn)練,并輸出預(yù)測結(jié)果及預(yù)測誤差。
3)將上一層算法預(yù)測的訓(xùn)練集負(fù)荷數(shù)據(jù)加入特征量中,統(tǒng)一進(jìn)行歸一化處理,構(gòu)建LSTM時序訓(xùn)練模型,得出預(yù)測結(jié)果及預(yù)測誤差。
4)根據(jù)以上兩層訓(xùn)練得出的預(yù)測結(jié)果和驗(yàn)證集預(yù)測誤差,并驗(yàn)證預(yù)測誤差加權(quán)平均得出最終的負(fù)荷預(yù)測值[10]。
空調(diào)負(fù)荷是科技園區(qū)受天氣影響變化最大的負(fù)荷,采用某科技園區(qū)每小時的負(fù)荷數(shù)據(jù),當(dāng)?shù)氐奶鞖鈹?shù)據(jù),包括溫度、露點(diǎn)、濕度、風(fēng)向、風(fēng)速、壓力、天氣類型等。按照模型融合算法流程進(jìn)行數(shù)據(jù)預(yù)處理,構(gòu)造時間相關(guān)屬性,對所有數(shù)據(jù)進(jìn)行相關(guān)性分析,提取相關(guān)性較大的特征量。構(gòu)建訓(xùn)練集、驗(yàn)證集、測試集比例為8∶1∶1。程序計算采用python語言實(shí)現(xiàn),第一、二層算法分別調(diào)用Lightgbm的機(jī)器學(xué)習(xí)庫、Keras的深度學(xué)習(xí)庫。LSTM網(wǎng)絡(luò)的層數(shù)為2,每層的神經(jīng)元個數(shù)均為256,優(yōu)化算法為Adam算法,歸一化按照sklearn庫里面的MinMaxScaler處理。Lightgbm算法的葉子數(shù)為31,學(xué)習(xí)率為0.1,訓(xùn)練次數(shù)為12 000,目標(biāo)函數(shù)是regression。誤差考核標(biāo)準(zhǔn)參考平均絕對誤差百分比εMAPE、均方根誤差εRMSE、平均絕對誤差εMAE。
式中,yi為測量值,為預(yù)測值,n為數(shù)據(jù)集個數(shù)。
按照模型融合算法計算流程,將處理后的數(shù)據(jù)集作為LightGBM預(yù)測模型的第一層數(shù)據(jù)進(jìn)行訓(xùn)練,根據(jù)數(shù)據(jù)量大小,選擇4折交叉驗(yàn)證,訓(xùn)練后測試集的εMAPE為6.32%,εMAE為44.86,εRMSE為69.32。將第一層訓(xùn)練得出的訓(xùn)練集預(yù)測結(jié)果加入第二層模型訓(xùn)練中,將兩層模型預(yù)測的訓(xùn)練集數(shù)據(jù)通過融合算法訓(xùn)練出融合模型,最終得出測試集的預(yù)測值。圖7為某天的24 h負(fù)荷預(yù)測值及其實(shí)際負(fù)荷值。
圖7 24 h負(fù)荷預(yù)測值
分別采用單獨(dú)的LightGBM、XGBoost、LSTM算法進(jìn)行負(fù)荷預(yù)測,測試的預(yù)測結(jié)果見表1。可見融合算法相比其他的預(yù)測算法能獲得更高的預(yù)測精度。其次,單獨(dú)的LightGBM算法比采用4折交叉驗(yàn)證算法的預(yù)測誤差要大,證明交叉驗(yàn)證能一定程度上提高模型的泛化能力,從而提高預(yù)測精度。
表1 不同算法的預(yù)測結(jié)果
提取某天的24 h預(yù)測值如圖8所示。由此可見,融合算法比其他算法能獲得更高的預(yù)測精度,從而證明了方法的有效性。
圖8 不同算法的預(yù)測值比較
根據(jù)某科技園區(qū)的歷史負(fù)荷數(shù)據(jù)及天氣數(shù)據(jù)預(yù)測未來24 h的負(fù)荷值,采用基于LightGBM及LSTM算法融合的負(fù)荷預(yù)測方法,考慮負(fù)荷的歷史時序特性,也考慮天氣及時間因素對負(fù)荷的影響。增加時間相關(guān)特征量,映射時間對負(fù)荷值的影響,采用LightGBM訓(xùn)練第一層特征預(yù)測模型,4折交叉訓(xùn)練避免了因數(shù)據(jù)量較少而導(dǎo)致模型泛化能力差的問題,預(yù)測精度明顯比直接訓(xùn)練要高。采用兩種預(yù)測算法融合,在一定程度上能減小負(fù)荷的預(yù)測誤差,提高了負(fù)荷預(yù)測的精度。