徐永瑞,左豐愷,朱新山,李碩士,劉洪瑞,孫 彪
(天津大學電氣自動化與信息工程學院,天津 300072)
電力系統(tǒng)預測的研究自20 世紀中葉就已經(jīng)開始,在此之前,電力系統(tǒng)由于自身的規(guī)模限制,此項研究一直沒有形成規(guī)模,到了20世紀80年代,在發(fā)達國家,電力需求預測的理論開始興起,為了有效地提高電網(wǎng)運行的經(jīng)濟性和安全性,同時改善供電質(zhì)量,電力系統(tǒng)負荷預測需要盡可能高的提升預測精度,其目的主要是為了幫助企業(yè)節(jié)省購電的開支,由此產(chǎn)生了一系列的預測方法[1]。
目前,一類傳統(tǒng)方法是魏友華[1]采用的自回歸法、自回歸移動平均法以及專家系統(tǒng)等等,人工智能技術(shù)興起后,廖旎煥等[2]采用了人工神經(jīng)網(wǎng)絡(luò)、模糊預測法、支持向量機等人工智能手段進行負荷預測,不過以上方法僅適用于短期負荷預測。文獻[3]提出了負荷相關(guān)因素自適應訓練的概念,并對其進行了研究,經(jīng)過負載相關(guān)因素的訓練,負荷預測的精度有了明顯的提高[3];文獻[4]采用了基于BP神經(jīng)網(wǎng)絡(luò)的負荷預測方法,取得了較好的效果,但是僅在短期預測中,且運算時間較長,難以處理大型數(shù)據(jù)集;針對此問題,為充分考慮負荷本身以外的因素對負荷的影響,文獻[5]采用了一種基于相似度和神經(jīng)網(wǎng)絡(luò)的協(xié)調(diào)負荷預測模型。實驗表明,該方法能提高預測的精度,降低預測風險。
目前現(xiàn)有的人工智能方法都存在最終解過于依賴初值,收斂速度慢,網(wǎng)絡(luò)的隱節(jié)點數(shù)難以確定等問題,而在中期負荷預測中,本文采用的GBDT(gradient boosted decision tree)模型預測用電量是結(jié)合了機器學習以及集成學習領(lǐng)域的新方法,相較于傳統(tǒng)預測方法以及其他人工智能方法,其模型的泛化能力、運算速度、穩(wěn)定性都有了大幅度的提升[6]。
針對機器學習的一般任務,本文提出的問題模型是一種回歸模型,即樣本數(shù)據(jù)及標注的特征作為數(shù)據(jù)集D={(xn1-xni,yni)}N i=1,將數(shù)據(jù)集D放入算法模型中進行訓練,得出的預測結(jié)果為y?,即模型的輸出[7]。由于為非線性回歸任務,故采用加法結(jié)構(gòu),其函數(shù)描述為
式中:β1,β2,…,βm為每一子函數(shù)的預測值的權(quán)重系數(shù);β0為初始值;f1(?),f2(?),…,fm(?)為子函數(shù)對應的預測值。
式(1)的輸出結(jié)果為加法模型的一輪預測值[8]。即該模型適合處理非線性數(shù)據(jù),圖1 為該模型的基本結(jié)構(gòu)。
圖1 問題模型的描述Fig.1 Model description for the problem
GBDT 模型是多項式回歸模型,其模型的優(yōu)勢在于能夠擬合非線性可分的數(shù)據(jù),從而更加靈活地處理復雜的關(guān)系,不足之處在于因為需要設(shè)置變量的參數(shù),所以它是完全控制要素變量的建模,因此需要一些數(shù)據(jù)的先驗知識才能選擇最佳參數(shù),參數(shù)選擇不當容易出現(xiàn)過擬合問題[9]。
數(shù)據(jù)集采用2017 年11 月13 日到2018 年7 月31日北京某大樓的日用電量數(shù)據(jù),該樓為公司辦公樓,用戶基本為公司員工,日用電量在8~16 kW 之間,同時結(jié)合該樓所處的位置,提取了最高溫、最低溫、平均溫以及節(jié)假日、工作日和月份共6 個影響因素來作為輸入特征。為方便描述,將以上特征的數(shù)值分別存為(x1,x2,…,x6)∈R6N,表示總量為N的用電量數(shù)據(jù)的特征向量,便于之后的特征工程[10]。
2.1.1 溫度特征的提取
從中國氣象局網(wǎng)站上提取了該區(qū)域的最高溫、最低溫和平均溫,分別將其數(shù)值存入特征向量的第1、2、3列,平均溫是每一天溫度的最真實反映,冬季平均溫最低,夏季平均溫最高,這兩個季度大廈使用空調(diào)頻率最高,用電量高于其他季度,故平均溫這一特征是對預測的結(jié)果影響程度最高的特征。溫度特征提取過程是將溫度數(shù)值存入特征向量的前3列。
2.1.2 節(jié)假日特征的提取
由于決策樹的分類原理是將特征向量的數(shù)值與節(jié)點中生成的值進行比較,從而對輸入數(shù)據(jù)進行劃分,故節(jié)假日的特征提取過程是將工作日特征設(shè)置為1,節(jié)假日(包含周末)設(shè)置為0.5,并存入特征向量的第4 列,圖2 表示了節(jié)假日和非節(jié)假日的用電量差異。
圖2 節(jié)假日與非節(jié)假日的用電量差異Fig.2 Difference in electricity consumption between holidays and non-holidays
2.1.3 星期特征的提取
將星期特征數(shù)值存入特征向量的第5 列,周一至周五為公司的工作日,用電量較周六周日大,當決策樹節(jié)點值落入5、6之間,或1、7之間時,才會對預測結(jié)果產(chǎn)生較為明顯的影響,圖3表示了該樓周一到周日的用電量差異。
圖3 星期特征對用電量結(jié)果的影響Fig.3 Influences of weekly characteristics on electricity consumption results
2.1.4 月份特征的提取
將11 月份的值存入特征向量的第6 列,從圖4可知,只有在季度交替月時用電量差異才明顯,而決策樹算法的節(jié)點取值具有隨機性,僅當樹的節(jié)點落入3、4 之間或者6、7 之間時,才會對預測結(jié)果產(chǎn)生較大影響,圖4為不同月份之間的用電量。
圖4 不同月份的用電量差異Fig.4 Differences in electricity consumption in different months
溫度特征顯示,在2、3、4 月份存在一些異常的低溫,在6、7、8 月份存在一些異常的高溫,該異常溫度會影響預測的效果,故在源程序中將輸入的溫度設(shè)置為
即:輸入溫度=0.6×平均溫度+0.4×真實溫度,用此方法可以有效地避免數(shù)據(jù)中的異常溫度對預測結(jié)果產(chǎn)生的影響[11]。
取平均溫度這一特征可以縮小溫度的波動,將異常高溫和異常低溫縮減到一個合理的區(qū)間,再將其和真實溫度結(jié)合,其權(quán)重系數(shù)分別設(shè)置為0.6 和0.4,此權(quán)重系數(shù)是反復大量實驗之后選取的最優(yōu)權(quán)重。特征工程效果如圖5所示,從圖5可知,采用特征工程處理之后,溫度曲線更為平緩[12]。
圖5 特征工程效果Fig.5 Effect of feature engineering
模型的輸入為如下兩部分。
以上作為輸入部分,放入模型中進行訓練,輸出為y?i,即預測出的日用電量,模型一共迭代90次,最終按天輸出未來3個月的用電量。模型大致結(jié)構(gòu)如圖6所示。
圖6 模型結(jié)構(gòu)Fig.6 Model structure
GBDT模型[18]由Jerome Friedman在1999年提出的,是一種迭代的決策樹算法,該算法主要是由多顆CART(classification and regression tree)樹組成,通常為上百顆樹,每棵樹的深度不超過6[14]。模型在進行預測的時候,對于每一個輸入的特征向量(x1,x2,…,x6),會遍歷一整棵樹的所有節(jié)點,每棵樹都會根據(jù)輸入的特征向量所帶的特征得到一個預測值,最終的一輪預測值是由每一顆樹的預測值乘以學習率累加得到[15]。其中樹模型的函數(shù)表達式為
式中:如果輸入的特征向量(x1,x2,…,x6)落在最大信息增益對應節(jié)點所劃分的樣本子空間上,則I為1;否則,I為0;m表示第m棵樹。
本文中的GBDT 數(shù)學模型為決策樹的加法模型,其表達式為
式中:Fm為最終預測值;βm為第m棵樹所對應的學習率;fm(x1,x2,…,x6)為第m棵樹所對應的預測值。模型的原理如圖7所示。
圖7 GBDT 內(nèi)部結(jié)構(gòu)Fig.7 Internal structure of GBDT
圖中,C1,2,…,6,m,jm為第m棵樹第j個節(jié)點對應的預測值,每一棵樹獨立串行生成,通過比較節(jié)點值和特征值的大小將樣本點分類,并劃分樣本子空間,選擇信息增益最大的節(jié)點所對應的預測值作為一輪預測值,放入模型中進行迭代[16]。
本文中,由于輸入的特征向量一共6 維,每一個特征向量代表一個維度,yi為存在樣本空間里的歷史值,故輸入樣本越多,樣本空間中存放的值也越多,求出的預測值精度也越高,輸入新數(shù)據(jù)時,會根據(jù)新數(shù)據(jù)所帶有的特征向量將新數(shù)據(jù)存入樣本空間,同時也會根據(jù)樹中的信息增益為正的非葉子節(jié)點來劃分樣本子空間[17]。
由于系統(tǒng)生成的擬合函數(shù)具有6 個維度,用6維空間體函數(shù)擬合分布在6 維空間內(nèi)離散的樣本點,得到最終的預測模型[18]。圖8 為第m棵樹劃分的樣本子空間,圖中Ci,m,jm為預測值,Ri,m,jm為劃分好的樣本空間,i=1,2,…,6。
圖8 樹的節(jié)點對樣本子空間的劃分Fig.8 Partition of sample subspaces by means of tree nodes
其中x1,x2,…,x6為特征向量所在的維度所對應的坐標軸,R1,2,…,6,m,jm為被決策樹節(jié)點劃分好的樣本子空間,1,2,…,k(k≤25)為被樹節(jié)點所劃分的邊界,C1,2,…,6,m,jm為被劃分好的樣本空間R1,2,…,6,m,jm中的預測值,該值是將子空間中的歷史值取平均所得。
Gradient Boosting 是一種Boosting 方法,其主要思想是每次迭代的新模型是在之前模型沿著損失函數(shù)負梯度下降最快的方向來建立[19]。決策樹為基函數(shù)的提升方法稱為提升樹,這里用CART 樹作為基函數(shù),提升樹模型可以表示為CART 樹的加法模型,即
式中:βm為第m步對應的學習率;am為第m輪的模型參數(shù),比如最大迭代次數(shù)m,樹的最大深度max_depth,內(nèi)部節(jié)點再劃分所需最小樣本數(shù)min_samples_split,葉子節(jié)點最小的樣本權(quán)重min_weight_fraction_leaf等等,求解公式為
模型第m輪的殘差為yi-Fm-1(xi),也即第m-1輪的梯度,故GBDT 模擬合的手段是殘差,也是梯度,二者都決定了擬合的精度[20]。
為了更好地解釋預測值的選取,現(xiàn)引入決策樹的復雜度函數(shù),即
式中:Gi為第m輪損失函數(shù)的一階導數(shù)之和;Hi為其二階導數(shù)之和。據(jù)此定義,令GL為損失函數(shù)在左節(jié)點的一階導數(shù)之和,GR為損失函數(shù)在右節(jié)點的一階導數(shù)之和,HL為損失函數(shù)在左節(jié)點的二階導數(shù)之和,HR為損失函數(shù)在右節(jié)點的二階導數(shù)之和[21]。
定義信息增益為Gain,計算節(jié)點每次劃分的增益的方法即采用信息增益法,當前節(jié)點記為C,該分裂獲得的收益定義為當前節(jié)點的目標函數(shù)值減去左右兩個節(jié)點的目標函數(shù)值之和,即
以深度為3 的樹為例,說明樣本子空間的劃分,如圖9所示。
圖9 每一棵樹對樣本子空間的劃分Fig.9 Partition of sample subspaces for each tree
1~7為節(jié)點的順序,每新輸入一個數(shù)據(jù),會遍歷每一棵樹的非葉子節(jié)點,節(jié)點每劃分一次產(chǎn)生一個信息增益Gain,當該節(jié)點信息增益為負,則在該節(jié)點處停止劃分,若為正,則繼續(xù)劃分。在所有節(jié)點完成劃分操作之后,對信息增益大小進行排布,若最大的信息增益落在最下層的非葉子節(jié)點處,則根據(jù)輸入該節(jié)點的特征向量進行劃分,若輸入的特征向量大于該節(jié)點的值,則取其下方右側(cè)的葉子節(jié)點對應的預測值為該樹的預測值;反之亦然。若最大信息增益落在上層的非葉子節(jié)點處,則取該非葉子節(jié)點對應的預測值為該樹的預測值[22]。
以上為一輪預測值fm,將該值再放入加法模型中進行迭代,有
求解完所有的βm之后,將其和每一棵樹的預測值的乘積代入模型,確定Fm的最終值,即未來一天的用電量預測值,再根據(jù)輸入的未來90 天的空數(shù)據(jù)在程序中遞歸執(zhí)行90次,最終輸出預測值。
采集的數(shù)據(jù)為北京某辦公樓所有4 級用電設(shè)備按天采集所得的用電量,每個設(shè)備采集完成后,在SQL環(huán)境中進行累加操作,將用電量按天整合到一起,該辦公樓的用戶均為公司員工,4級設(shè)備主要是空調(diào)、照明設(shè)備、變壓器等,采集日期從2017 年11 月13 日到2018 年7 月31 日,用電量設(shè)置為yN。yN為標簽,并伴隨特征向量(x1,x2,…,x6)N,其元素分別對應:最高溫、最低溫、平均溫、節(jié)假日、工作日及月份,以上為數(shù)據(jù)集構(gòu)建過程。若是同類型的辦公樓,并且可以采集足量的數(shù)據(jù),同樣可以構(gòu)建待預測的數(shù)據(jù)集。
表1 數(shù)據(jù)僅為部分樣本數(shù)據(jù)集,存為input_da?ta.csv,一共225天,基本符合機器學習預測的3∶1的原則,并將前180天劃分為訓練集,后45天劃分為測試集進行訓練。表2為待預測的數(shù)據(jù),去除了日用電量的8、9、10 月份的空數(shù)據(jù),其中溫度數(shù)據(jù)為氣象網(wǎng)站上獲得的預測溫度,部分數(shù)據(jù)描述如下。
表1 輸入的部分樣本數(shù)據(jù)Tab.1 Part of the sample data as input
表2 部分待預測數(shù)據(jù)Tab.2 Part of the data to be forecasted
首先結(jié)合用電量數(shù)據(jù)構(gòu)造數(shù)據(jù)集,建立足夠的可供模型預測的樣本數(shù)據(jù),在python環(huán)境中讀入數(shù)據(jù),進行歸一化操作,同時導入sklearn、numpy 等科學計算包,并調(diào)用GBDT 模型擬合離散的樣本點,輸出預測數(shù)據(jù),對比未來90 天的輸出數(shù)據(jù)和真實數(shù)據(jù),得出預測精度,反復調(diào)整模型參數(shù)以及擴大模型規(guī)模使最終精度達到95%及以上。
將數(shù)據(jù)放入模型訓練之后,在模型中將預測所得的數(shù)據(jù)輸出為1.csv。1.csv中的數(shù)據(jù)為pre_da?ta.csv中對應的日期并伴隨用電量,為2018年8月1日到2018 年10 月31 日的用電量按天預測輸出的結(jié)果模型輸出數(shù)據(jù)如表3所示。
表3 模型輸出數(shù)據(jù)Tab.3 Data of model output
結(jié)合歷史數(shù)據(jù)以及預測數(shù)據(jù),對比結(jié)果如圖10所示,可以觀測到未來90 天的用電量按天預測的效果,預測所得數(shù)據(jù)周期性較強,和歷史數(shù)據(jù)的規(guī)律一致,說明預測效果良好,此模型在預測準確度上完全滿足要求。通過反復實驗,未來3個月最理想的預測精度分別為96.09%、95.00%、96.55%。通過合理地調(diào)節(jié)參數(shù),模型的泛化能力和穩(wěn)定性均達到了理想效果。
圖10 真實值和預測值對比Fig.10 Comparison between real and forecasted values
在負荷預測任務中,LSTM 模型相對于傳統(tǒng)模型具有運算速度快、穩(wěn)定性強等優(yōu)點。在GBDT 模型負荷預測實驗完成后,在同一個數(shù)據(jù)集下,使用LSTM 模型進行預測,分別用月絕對誤差MAE(monthly absolute error)、月相對誤差MRE(monthly relative error)、平均絕對百化比誤差MAPE(mean absolute percentage error)、均方根誤差RMSE(root mean squared error)4 個指標對比了二者的泛化性能[23]。4個指標的表達式如下。
(1)月絕對誤差為
式中:y?i為預測值;yi為真實值。指標數(shù)值越小說明模型性能越好。將2 個模型預測的8、9、10 月的預測值分別代入以上4 個指標中,表4 和表5 為兩個模型指標對比結(jié)果。實驗結(jié)果表明,GBDT 模型各方面的性能都優(yōu)于LSTM模型。
由表4 和表5 的對比結(jié)果可知,用GBDT 算法輸出的未來3個月的預測精度均高于LSTM算法的預測精度,說明GBDT 算法的泛化性能優(yōu)于LSTM算 法;同 時GBDT 算 法 的MAE、MRE、MAPE 和RMSE 在8 月以及9 月份均低于LSTM 算法,說明GBDT 算法的穩(wěn)定性在短時預測上優(yōu)于LSTM 算法,使用該算法預測的誤差更小。由于LSTM 算法相對于GBDT 算法擁有可以長時記憶狀態(tài)的細胞單元,故該算法在10月份預測的MAPE 和MASP 低于GBDT算法,但GBDT算法的綜合性能較LSTM算法還是更優(yōu)些。
表4 GBDT 模型指標結(jié)果Tab.4 Index results of GBDT model
表5 LSTM 模型指標結(jié)果Tab.5 Index results of LSTM model
(1)在預測過程中出現(xiàn)了過擬合現(xiàn)象,通過調(diào)整最大迭代次數(shù)、學習率以及樹的最大深度等參數(shù),有效地解決了過擬合,模型輸出的未來3 個月的預測誤差分別達到了3.91%、5.00%、3.45%。
(2)在特征工程中,首次提出特征加權(quán)概念,避免了異常溫度對預測結(jié)果的影響,克服了傳統(tǒng)GB?DT模型特征工程處理較為粗糙的問題。