黨存祿 楊海蘭 武文成
(1. 蘭州理工大學(xué)電氣工程與信息工程學(xué)院 蘭州 730050;2. 蘭州理工大學(xué)甘肅省工業(yè)過程先進(jìn)控制重點(diǎn)實(shí)驗(yàn)室 蘭州 730050;3. 蘭州理工大學(xué)電氣與控制工程國家級(jí)實(shí)驗(yàn)教學(xué)示范中心 蘭州 730050;4. 甘肅送變電工程有限公司 蘭州 730070)
電力系統(tǒng)短期負(fù)荷預(yù)測是根據(jù)氣象、社會(huì)、經(jīng)濟(jì)發(fā)展等多重歷史負(fù)荷數(shù)據(jù),運(yùn)用特定的算法對(duì)未來幾天或者幾小時(shí)的電力負(fù)荷進(jìn)行合理有效的預(yù)測[1]。隨著智能電網(wǎng)的加速建設(shè),不僅對(duì)電源端的供電可靠性有了更高的要求,同時(shí)對(duì)于電力的優(yōu)化調(diào)度有了更為嚴(yán)格的要求,因此快速高效的電力系統(tǒng)負(fù)荷預(yù)測對(duì)電網(wǎng)制定合理、經(jīng)濟(jì)的調(diào)度計(jì)劃,更好地實(shí)現(xiàn)電力系統(tǒng)負(fù)荷的“削峰填谷”有重要的意義[2]。
對(duì)于電力系統(tǒng)短期負(fù)荷預(yù)測方法,國內(nèi)外學(xué)者進(jìn)行了大量的研究[3-5],現(xiàn)有的負(fù)荷預(yù)測方法可分為兩大類:時(shí)間序列分析法[6-8]和機(jī)器學(xué)習(xí)法[9-12]。但是對(duì)于時(shí)間序列分析法而言,當(dāng)負(fù)荷樣本較大時(shí)該方法存在處理數(shù)據(jù)之間非線性關(guān)系的能力較差,因此預(yù)測精度不高。對(duì)于機(jī)器學(xué)習(xí)法而言,存在欠缺對(duì)負(fù)荷數(shù)據(jù)時(shí)間相關(guān)性的考慮,且當(dāng)訓(xùn)練樣本較多時(shí)存在收斂速度慢、泛化能力弱的問題。機(jī)器學(xué)習(xí)法常用于負(fù)荷預(yù)測的有BP 神經(jīng)網(wǎng)絡(luò)、隨機(jī)森林、極限學(xué)習(xí)機(jī),但上述方法欠缺對(duì)負(fù)荷數(shù)據(jù)時(shí)間相關(guān)性的考慮,且當(dāng)訓(xùn)練樣本較多時(shí)存在收斂速度慢、泛化能力弱的問題[13]。目前,由于長短期記憶神經(jīng)網(wǎng)絡(luò)兼顧了負(fù)荷的時(shí)序性和非線性關(guān)系,在負(fù)荷預(yù)測研究中被廣泛應(yīng)用,但它不能充分體現(xiàn)非連續(xù)數(shù)據(jù)之間內(nèi)在關(guān)系[14]。CatBoost 算法在負(fù)荷預(yù)測中也有應(yīng)用,對(duì)非連續(xù)性數(shù)據(jù)具有很好的識(shí)別能力,不需要強(qiáng)行用數(shù)值代替非連續(xù)性特征,但其對(duì)時(shí)間序列的整體感知能力較弱[15]。
相較于單一方法,組合方法集成了單一方法的優(yōu)點(diǎn),預(yù)測效果更好,且在準(zhǔn)確率和穩(wěn)定性方面得到了提升[16]。文獻(xiàn)[17]提出利用線性模型對(duì)長短記憶網(wǎng)絡(luò)和深度置信網(wǎng)絡(luò)訓(xùn)練結(jié)果進(jìn)行組合,文獻(xiàn)[18]通過BP 神經(jīng)網(wǎng)絡(luò)將支持向量機(jī)及長短記憶神經(jīng)網(wǎng)絡(luò)預(yù)測方法組合,最終模型預(yù)測精度高于組合前算法。文獻(xiàn)[19]利用灰色系統(tǒng)理論和時(shí)間序列分析方法建立組合預(yù)測模型。這些文獻(xiàn)都吸收了單一算法的優(yōu)點(diǎn),組合后效果較好。
針對(duì)上述電力系統(tǒng)短期負(fù)荷預(yù)測方法存在的不足,本文考慮利用長短期記憶神經(jīng)網(wǎng)絡(luò)對(duì)負(fù)荷時(shí)間序列良好的感知能力及CatBoost 對(duì)非連續(xù)性數(shù)據(jù)擬合效果好的優(yōu)點(diǎn),提出將長短期記憶神經(jīng)網(wǎng)絡(luò)和CatBoost 組合的方法應(yīng)用于電力系統(tǒng)短期負(fù)荷預(yù)測。首先,考慮到短期電力負(fù)荷數(shù)據(jù)固有的時(shí)間序列特性,將溫度、降雨量、濕度、負(fù)荷等特征信息以時(shí)間序列的形式輸入長短期記憶神經(jīng)網(wǎng)絡(luò)模型,對(duì)長短期記憶網(wǎng)絡(luò)不能直接處理類別型特征建立CatBoost 負(fù)荷預(yù)測模型,其次將長短期記憶神經(jīng)網(wǎng)絡(luò)和CatBoost 進(jìn)行組合得到預(yù)測值,通過組合的方式提高預(yù)測精度。
由于RNN 在處理很長的輸入序列時(shí),存在梯度消失或爆炸的現(xiàn)象,故長短期記憶神經(jīng)網(wǎng)絡(luò)(Long short-term memory,LSTM)應(yīng)用而生,它可以解決長距離的依賴問題,增強(qiáng)了模型的記憶。LSTM 相較于RNN 增加了一個(gè)單元狀態(tài)C,專門存儲(chǔ)網(wǎng)絡(luò)中的長期狀態(tài)。LSTM 是由Hochreiter & Schmidhuber于1997 年首先提出的,并且在后來的工作中被許多人精煉和推廣。
LSTM 單元結(jié)構(gòu)如圖1 所示,每個(gè)LSTM 單元狀態(tài)包括輸入門、輸出門和遺忘門,通過這三個(gè)門實(shí)現(xiàn)信息的保護(hù)和控制。遺忘門決定上一時(shí)刻單元狀態(tài)信息需要保留到當(dāng)前單元狀態(tài)的比例。遺忘門讀取上一時(shí)刻單元輸出信息ht-1和當(dāng)前時(shí)刻輸入信息xt,當(dāng)遺忘門ft輸出是0 時(shí),上一時(shí)刻單元狀態(tài)ct-1的信息全部舍棄,當(dāng)遺忘門ft輸出是1 時(shí),上一時(shí)刻單元狀態(tài)ct-1的信息全部保留。

圖1 LSTM 單元結(jié)構(gòu)圖

輸入門決定給單元狀態(tài)加入哪些新的信息,輸入門由ti與tc?相乘得到,t步的輸入信息xt和t-1步的單元輸出信息ht-1分別經(jīng)過sigmoid 和tanh 函數(shù)處理后共同決定記憶單元狀態(tài)中保存的信息。


首先,確定輸入數(shù)據(jù)和輸出數(shù)據(jù),因?yàn)轭A(yù)測日負(fù)荷數(shù)據(jù)與前七天的負(fù)荷數(shù)據(jù)有很大的相關(guān)性,故輸入數(shù)據(jù)選擇預(yù)測日前七天的電力負(fù)荷數(shù)據(jù)及相關(guān)影響因素,經(jīng)過皮爾遜相關(guān)性篩選,選取最高溫度、最低溫度、平均溫度、相對(duì)濕度、降雨量和日期類型負(fù)荷共七個(gè)特征,輸出數(shù)據(jù)是預(yù)測日一天的電力負(fù)荷數(shù)據(jù)。這七個(gè)特征中,其他都是數(shù)值型,日期類型是類別型變量。由于日期類型分為工作日和非工作日,用二進(jìn)制變量0 和1 表示。然后對(duì)輸入數(shù)據(jù)進(jìn)行歸一化預(yù)處理。由于LSTM 激活函數(shù)的特性,所以需要對(duì)輸入數(shù)據(jù)進(jìn)行歸一化處理。

式中,L是歸一化后的輸入數(shù)據(jù),lmin和lmax分別是負(fù)荷數(shù)據(jù)中的最小值和最大值。
最后構(gòu)建LSTM 模型,LSTM 網(wǎng)絡(luò)結(jié)構(gòu)圖如圖2 所示。模型分為輸入層、隱含層、輸出層。輸入層的輸入特征以時(shí)間序列形式輸入到第一個(gè)隱藏層,有三層隱藏層,前級(jí)隱藏層的輸出作為下級(jí)隱藏層的輸入。第三層隱藏層輸出作為全連接層的輸入。輸入層的時(shí)間步長取672,輸入特征是7 維,利用控制變量法發(fā)現(xiàn)增加隱含層層數(shù)對(duì)提高模型的預(yù)測能力有效,故隱含層層數(shù)為3,隱含層神經(jīng)元個(gè)數(shù)按照經(jīng)驗(yàn)設(shè)置為128、64、32,全連接層輸出待預(yù)測日一天96 個(gè)時(shí)刻的負(fù)荷并反歸一化,最后為了后期計(jì)算誤差,將輸出數(shù)據(jù)變?yōu)?6 行1 列。網(wǎng)絡(luò)優(yōu)化算法選擇Adam 算法。

圖2 短期負(fù)荷預(yù)測LSTM 網(wǎng)絡(luò)結(jié)構(gòu)
CatBoost 是由俄羅斯搜索巨頭Yandex 于2017年提出的基于梯度提升決策樹的開源機(jī)器學(xué)習(xí)庫,CatBoost 的優(yōu)點(diǎn)在于能夠高效合理地處理類別型特征變量,對(duì)梯度估計(jì)方式進(jìn)行改進(jìn),對(duì)每一次迭代所需的無偏梯度估計(jì)進(jìn)行建樹,以減緩預(yù)測偏移,進(jìn)而提高模型的預(yù)測精度和泛化能力。
類別型特征是指類別是離散的特征,一般是字符串形式,每一種取值代表一種特定的類別,類別型特征不能直接用于算法輸入中,需要對(duì)他們進(jìn)行處理。

式中,p代表先驗(yàn)項(xiàng),α>0 代表先驗(yàn)項(xiàng)的權(quán)重系數(shù)。添加先驗(yàn)項(xiàng)可以降低類別特征中低頻特征引起的噪聲。對(duì)于回歸問題,先驗(yàn)項(xiàng)取數(shù)據(jù)集標(biāo)簽的均值。
GBDT 算法在擬合當(dāng)前模型的梯度過程中,由于使用的是當(dāng)前模型中相同的數(shù)據(jù)點(diǎn)進(jìn)行估計(jì),所以會(huì)產(chǎn)生梯度偏移,產(chǎn)生過擬合。針對(duì)此問題,CatBoost 利用Ordered Boosting 方法將GBDT 中梯度估計(jì)有偏改為無偏。
Ordered Boosting 方法是首先隨機(jī)生成一個(gè)[1 ,n]的排列σ對(duì)原始樣本進(jìn)行排序并初始化n個(gè)不一樣的模型M1,M2, ···,Mn,其次每個(gè)Mi只用隨機(jī)排列中的前i個(gè)樣本學(xué)習(xí)的模型,再次在每一步迭代過程中,通過模型Mj-1得到第j個(gè)樣本的無偏梯度估計(jì)。偽代碼如表1 所示。

表1 Ordered boosting 偽代碼
由于CatBoost 基于樹的模型,所以輸入輸出與LSTM 不一樣,CatBoost 選取待預(yù)測時(shí)刻的最高溫度、最低溫度、平均溫度、相對(duì)濕度、降雨量、日期類型、時(shí)、分以及前一日對(duì)應(yīng)時(shí)刻的負(fù)荷值作為該模型的輸入,輸出為待預(yù)測時(shí)刻的負(fù)荷值,利用訓(xùn)練好的CatBoost 模型對(duì)單個(gè)時(shí)刻分別進(jìn)行預(yù)測。建模如圖3 所示,由于CatBoost 可對(duì)類別型變量進(jìn)行自動(dòng)處理,故不需要對(duì)日期類型進(jìn)行量化,直接以類別型輸入,也不用對(duì)其他的輸入特征歸一化,CatBoost 模型樹深度設(shè)置為12,樹的個(gè)數(shù)為49。CatBoost 和GBDT 的原理相似,所構(gòu)建的訓(xùn)練模型也相似,除訓(xùn)練算法不同外其他均相同。

圖3 CatBoost 訓(xùn)練模型
由于LSTM 能夠很好地對(duì)時(shí)間序列數(shù)據(jù)進(jìn)行預(yù)測,在短期負(fù)荷預(yù)測中已有應(yīng)用[20],但是當(dāng)輸入特征為類別型特征時(shí),預(yù)測精度表現(xiàn)不是很好;而CatBoost 能夠高效合理地處理類別型特征變量,不用將類別型變量用數(shù)值代替;結(jié)合這兩種方法的優(yōu)點(diǎn)對(duì)它們進(jìn)行組合。
經(jīng)過LSTM和CatBoost的模型預(yù)測出兩種不同的結(jié)果后,需要計(jì)算兩種預(yù)測方法的加權(quán)系數(shù),以便得到最佳預(yù)測結(jié)果。采用方差倒數(shù)法[21]計(jì)算加權(quán)系數(shù)。

式中,iω是第i個(gè)模型的權(quán)重系數(shù),iL是第i種單個(gè)模型的預(yù)測誤差平方和。單個(gè)模型的方差公式如式(10)所示

式中,yip表示第i種模型的預(yù)計(jì)值,yr表示真實(shí)負(fù)荷值。最終組合模型預(yù)測結(jié)果計(jì)算如式(11)所示

組合模型預(yù)測流程圖如圖4 所示,首先將數(shù)據(jù)切分為訓(xùn)練集和測試集,然后分別用LSTM 方法和CatBoost 方法進(jìn)行訓(xùn)練模型訓(xùn)練,得到LSTM 預(yù)測結(jié)果和CatBoost 預(yù)測結(jié)果,根據(jù)方差倒數(shù)法分別計(jì)算兩種不同方法的權(quán)重,最后根據(jù)式(11)計(jì)算最終組合預(yù)測值。

圖4 組合預(yù)測流程圖
試驗(yàn)數(shù)據(jù)使用全國大學(xué)生電工數(shù)學(xué)建模競賽2016 年的數(shù)據(jù)集。試驗(yàn)以某一地區(qū)2013 年1 月1日至2015 年1 月10 日的電力負(fù)荷及相關(guān)的外界影響因素為數(shù)據(jù),一天24 h 中采集96 個(gè)點(diǎn),時(shí)間間隔15 min;外界影響因素?cái)?shù)據(jù)包括最高溫度、最低溫度、平均溫度、相對(duì)濕度、降雨量、日期類型。按照7∶2∶1 的比例劃分為訓(xùn)練集、驗(yàn)證集、測試集。本文中算法的編寫使用Python3.6 實(shí)現(xiàn),LSTM 模型使用Tensorflow 框架實(shí)現(xiàn)。
本試驗(yàn)用平均絕對(duì)百分比誤差(Mean absolute percentage error,MAPE)以及均方根誤差(Root mean square error,RMSE)和平均絕對(duì)誤差(Mean absolute error, MAE)作為預(yù)測評(píng)價(jià)指標(biāo),公式如下所示

式中,n為預(yù)測點(diǎn)總個(gè)數(shù),ir為第i點(diǎn)的真實(shí)負(fù)荷值,
ip為第i點(diǎn)的預(yù)測負(fù)荷值。
在輸入特征中,日期類型是類別型特征,不是連續(xù)性特征,日期類型分為工作日和非工作日,選擇一些工作日和周末做負(fù)荷預(yù)測。
從表2 中得知,和CatBoost 相比,LSTM 在預(yù)測類別型特征方面沒有CatBoost 好。周末比工作日預(yù)測效果差,說明LSTM 對(duì)類別型特征預(yù)測效果有限。而CatBoost 正好彌補(bǔ)了這個(gè)缺點(diǎn),通過這兩種方法的組合,能夠有效地將它們的優(yōu)點(diǎn)結(jié)合,不僅能對(duì)時(shí)間序列數(shù)據(jù)進(jìn)行預(yù)測,還能高效地處理類別型特征變量。

表2 工作日與周末的預(yù)測結(jié)果對(duì)比
對(duì)工作日2014 年12 月30 日的負(fù)荷進(jìn)行預(yù)測分析,試驗(yàn)還與LSTM 和GBDT 組合模型、BP-SVM組合模型[22]進(jìn)行對(duì)比。圖5 是單一模型和本文組合模型的真實(shí)值和預(yù)測值的對(duì)比圖,圖6 是三種不同組合方法的真實(shí)值和預(yù)測值的對(duì)比圖。從圖5、6中得知,這幾種模型都能夠有效預(yù)測負(fù)荷,但是在負(fù)荷變化較大的峰谷周圍,單一模型負(fù)荷預(yù)測誤差大,組合模型預(yù)測誤差小。組合模型LSTM-GBDT預(yù)測效果也較好,但是相比LSTM-CatBoost 組合模型,預(yù)測效果還是差一點(diǎn),組合模型BP-SVM 模型相比其他兩種組合模型,效果較差,相比之下,本文所用的LSTM-CatBoost 組合模型在峰谷周圍預(yù)測誤差較小,能夠較好地反映負(fù)荷變化趨勢,負(fù)荷預(yù)測精度也有所提高。

圖5 LSTM、CatBoost 和LSTM-CatBoost 預(yù)測結(jié)果

圖6 不同組合方法對(duì)比
圖7 是六種不同方法的相對(duì)誤差對(duì)比圖,本文所提LSTM 和CatBoost 組合方法的相對(duì)誤差很小,正負(fù)絕對(duì)值不超過0.2,說明本方法在負(fù)荷預(yù)測方面是有效的。

圖7 相對(duì)誤差對(duì)比
表3 顯示了所有模型的評(píng)價(jià)結(jié)果,從評(píng)價(jià)結(jié)果可以看出,本文采用的LSTM-CatBoost、LSTMGBDT 組合模型相比GBDT、LSTM、CatBoost 模型,誤差明顯降低,參考文獻(xiàn)組合模型BP-SVM 效果沒有其他兩種組合模型好,沒有單一模型效果好,說明組合模型LSTM-CatBoost、LSTM-GBDT 比單一模型具有更好的預(yù)測能力,LSTM-CatBoost 相比LSTM-GBDT 組合模型,誤差指標(biāo)更低,三個(gè)指標(biāo)分別是2.66%、229.23 MW、178.61 MW。結(jié)果顯示,本文所提方法相比其他模型,精度明顯提高。

表3 不同模型工作日預(yù)測結(jié)果對(duì)比
為了進(jìn)一步提高負(fù)荷預(yù)測,既要考慮負(fù)荷數(shù)據(jù)的時(shí)序性,同時(shí)也要考慮影響負(fù)荷的類別型特征,不能直接對(duì)類別型特征量化以免發(fā)生預(yù)測偏移。故提出了將長短期記憶神經(jīng)網(wǎng)絡(luò)和CatBoost 進(jìn)行組合的預(yù)測方法,對(duì)短期負(fù)荷進(jìn)行預(yù)測。由預(yù)測結(jié)果得出如下結(jié)論。
(1) 長短期記憶神經(jīng)網(wǎng)絡(luò)、CatBoost、GBDT 都可進(jìn)行短期負(fù)荷預(yù)測,預(yù)測結(jié)果接近。
(2) 組合方法和單一方法相比,在負(fù)荷波動(dòng)較大的峰谷周圍,LSTM-CatBoost 組合方法能夠有效降低誤差,提高短期負(fù)荷預(yù)測精度;在以后的研究中,應(yīng)考慮不同負(fù)荷領(lǐng)域,進(jìn)行負(fù)荷特點(diǎn)的分析,進(jìn)而提高負(fù)荷預(yù)測精度。