劉亞琿, 趙 倩
(上海電力大學(xué) 電子與信息工程學(xué)院, 上海 200090)
電力負(fù)荷短期預(yù)測的目標(biāo)是對未來幾小時至幾天的用電量進(jìn)行預(yù)測。精確的預(yù)測結(jié)果是電力部門有效部署資源并確保電網(wǎng)安全、降低發(fā)電成本、提高經(jīng)濟效益和社會效益的基礎(chǔ)。近年來,隨著電力行業(yè)市場化改革的推進(jìn),以及智能電網(wǎng)技術(shù)的廣泛運用,電網(wǎng)的規(guī)模和信息化程度不斷擴大。智能量測設(shè)備的大量投入有效地提高了對負(fù)荷的采集頻率以及采集的準(zhǔn)確率。這為使用深度學(xué)習(xí)進(jìn)行電力負(fù)荷預(yù)測提供了大數(shù)據(jù)基礎(chǔ)。
對于電力負(fù)荷短期預(yù)測的研究,國內(nèi)外學(xué)者已經(jīng)取得了大量的研究成果。根據(jù)電力負(fù)荷的時序性和非線性的特點,對電力負(fù)荷預(yù)測的方法大致分為兩類:一類是基于統(tǒng)計模型的預(yù)測方法,例如回歸分析法[1]、卡爾曼濾波法[2]、指數(shù)平均模型法[3]等;另一類則是機器學(xué)習(xí)分析方法,例如支持向量機(Support Vector Machines,SVM)算法[4]、隨機森林(Random Forest,RF)算法[5]、神經(jīng)網(wǎng)絡(luò)算法[6]等。這些算法大都采用日期、溫度、天氣以及日期類型等變量作為特征進(jìn)行電力負(fù)荷預(yù)測。對于負(fù)荷趨勢而言,有些用戶的負(fù)荷曲線并沒有呈現(xiàn)明顯的時間周期性規(guī)律,考慮到負(fù)荷曲線本身在短時間內(nèi)是一個連續(xù)變化的曲線,并不會發(fā)生突變,因此本文提出了一種采用預(yù)測日前幾日的負(fù)荷數(shù)據(jù)作為新特征替換年、月、日這些日期特征的新方法對電力負(fù)荷進(jìn)行預(yù)測,并運用不同算法在真實用電數(shù)據(jù)上進(jìn)行驗證。
傳統(tǒng)的負(fù)荷預(yù)測方法將影響短期負(fù)荷的因素歸納為歷史負(fù)荷數(shù)據(jù)、氣候因素和日期類型3類。文獻(xiàn)[7]提出的電力負(fù)荷公式為
L(t)=Ln(t)+Lw(t)+Ls(t)+Lr(t)
(1)
式中:L(t)——t時刻的實際負(fù)荷;
Ln(t)——t時刻的趨勢負(fù)荷,其應(yīng)該滿足高斯分布;
Lw(t)——t時刻的氣象因素(如溫度、濕度等)對此刻負(fù)荷的影響;
Ls(t)——t時刻一些特殊事件(如節(jié)假日、檢修等)所帶來的負(fù)荷波動;
Lr(t)——t時刻負(fù)荷的隨機波動,可以將其看作負(fù)荷的噪聲,如突發(fā)事故等,因此常常被忽略。
文獻(xiàn)[5]通過提高Lw(t)和Ls(t)的預(yù)測精度來提高t時刻電力負(fù)荷整體的預(yù)測精度。短期電力負(fù)荷的預(yù)測結(jié)果受到很多外界因素的影響,常見的因素有氣候因素,如溫度的高低、濕度的大小、天氣類型(晴天/下雨/多云)以及風(fēng)速的大小都會對負(fù)荷產(chǎn)生影響,因此獲取準(zhǔn)確的天氣信息會提高對Lw(t)預(yù)測的精確度。日期類型也是影響預(yù)測精度的另一個重要因素,日期類型分為工作日和非工作日,非工作日又可分為普通周六、周日和節(jié)假日,如五一、春節(jié)等,因此合理利用這些日期類型因素可以提高Ls(t)預(yù)測的精確度。
由于某些地區(qū)或用戶的用電負(fù)荷時序性較差,如北方某地區(qū)2016年和2017年的年負(fù)荷曲線如圖1所示。
圖1 2016年和2017年的年負(fù)荷曲線
由圖1可以看出,用電年負(fù)荷曲線并沒有明顯的時間規(guī)律,考慮到幾天內(nèi)的用電數(shù)據(jù)之間有明顯相關(guān)性,因此本文通過計算預(yù)測日實際負(fù)荷與前幾天負(fù)荷數(shù)據(jù)之間的相關(guān)系數(shù),并將年、月、日3個變量與預(yù)測日負(fù)荷之間的相關(guān)系數(shù)進(jìn)行對比,來選取與預(yù)測日用電量相關(guān)系數(shù)較大的變量作為特征進(jìn)行負(fù)荷預(yù)測。為了保證相關(guān)系數(shù)計算的準(zhǔn)確性,使用Pearson相關(guān)系數(shù)、Kendall相關(guān)系數(shù)和Spearman相關(guān)系數(shù)3種計算方法,分別計算各特征與預(yù)測日負(fù)荷數(shù)據(jù)之間的相關(guān)性。計算結(jié)果見表1和表2所示。表1中,B-day1,B-day2, B-day3,B-week分別表示預(yù)測日前1日、前2日、前3日和前7日的負(fù)荷數(shù)據(jù)。
表1 歷史負(fù)荷與預(yù)測日負(fù)荷的相關(guān)系數(shù)
表2 日期特征與預(yù)測日負(fù)荷的相關(guān)系數(shù)
對比發(fā)現(xiàn),預(yù)測日前1日和前7日的負(fù)荷數(shù)據(jù)與預(yù)測日負(fù)荷的相關(guān)系數(shù)要大于年、月、日與預(yù)測日負(fù)荷的相關(guān)系數(shù)。因此,本文提出選取預(yù)測日前1日和前7日的負(fù)荷數(shù)據(jù)作為新特征代替經(jīng)典方法中的日期特征來進(jìn)行短期負(fù)荷預(yù)測。
支持向量回歸(Support Vector Regression,SVR)算法作為SVM算法的一種推廣,應(yīng)用廣泛。算法原理為構(gòu)造一個決策平面,通過計算樣本點到?jīng)Q策平面的距離來進(jìn)行回歸預(yù)測。決策超平面由wT和b來確定:wT為法向量或權(quán)重,決定了超平面的方向;b為位移項,決定了超平面與原點之間的距離。假設(shè)給樣本集為{(x1,y1),(x2,y2),(x3,y3),…,(xn,yn)},其中x1,x2,x3,…,xn為影響因素,例如日期類型、濕度等;y1,y2,y3,…,yn為所對應(yīng)日負(fù)荷數(shù)據(jù)。決策超平面公式可表示為
f(x)=wTx+b
(2)
樣本點距離決策超平面距離公式為
yi-f(x)=yi-wTx-b<ε
i=1,2,3,…,n
(3)
SVR通過計算各個樣本點到?jīng)Q策超平面的距離來找到一個最優(yōu)超平面,使得決策超平面兩側(cè)距離超平面最近的樣本點距離最遠(yuǎn),目標(biāo)函數(shù)即滿足
(4)
式中:φ(xi)——將xi映射后的特征向量。
由于有些數(shù)據(jù)集是線性不可分的,為了解決線性不可分問題,同時為了防止過擬合現(xiàn)象,所以本文引入懲罰因子C和松弛因子ξi兩個超參數(shù)。此時目標(biāo)函數(shù)變?yōu)?/p>
(5)
約束條件為
(6)
為了求解目標(biāo)函數(shù)同時滿足式(6)的約束條件,應(yīng)用拉格朗日函數(shù),并將此問題轉(zhuǎn)化為其對偶問題進(jìn)行求解。由于一些樣本點在低維空間線性不可分,因此引入核函數(shù)將其映射到高維空間分開。常用核函數(shù)有Sigmoid核函數(shù)、高斯核函數(shù)、多項式核函數(shù)等。最終求得wT和b以及選擇的核函數(shù)來確定超平面。
RF算法由于其在噪聲以及異常值方面有很好的包容性,且在回歸預(yù)測中不易出現(xiàn)過擬合,因此該算法在回歸、分類方面均有較好的應(yīng)用,適用于負(fù)荷預(yù)測。RF算法原理為,將若干的分類性能一般的決策樹通過某種規(guī)則組合到一起,形成一個分類、回歸效果較好的“森林”,通過森林中所有樹投票來決定預(yù)測結(jié)果,從而提高預(yù)測精度。
RF是K個分類與回歸樹(Classification And Regression Tree,CART)的集合,數(shù)據(jù)集中有N個樣本,M個特征變量(如日期類型、溫度等)。利用Booststrap Sample方法抽取K次,每次有放回地從原始數(shù)據(jù)中抽取N個樣本,最終獲得K個樣本數(shù)量為N的樣本集。從M個特征變量中隨機選取m個特征變量構(gòu)成一個特征變量子集。m為一個定值,通過最小二乘偏差函數(shù)來選擇最優(yōu)特征進(jìn)行分裂,從而形成K個決策樹。由于每一棵CART樹分裂都是隨機的,正好避免了過擬合的產(chǎn)生。多個CART樹形成隨機森林,當(dāng)輸入一個樣本時,每一棵決策樹都會進(jìn)行判斷,產(chǎn)生一個預(yù)測值,將這些值進(jìn)行加權(quán)平均計算,所得結(jié)果為最終的預(yù)測結(jié)果。
梯度提升決策樹(Gradient Boosting Decision Tree,GBDT)算法是由梯度提升機和決策樹的結(jié)合改進(jìn)算法。當(dāng)梯度提升機的基函數(shù)選擇決策樹時便成為梯度提升決策樹算法。它的基本原理是在損失函數(shù)的負(fù)梯度方向上搭建若干決策樹,將這些決策樹組合成一個強回歸決策樹。這便是最終的回歸預(yù)測模型。
訓(xùn)練集表示為{(x1,y1),(x2,y2),(x3,y3),…,(xm,ym)}。x=[x1,x2,x3,…,xn]為模型的輸入向量,包含歷史負(fù)荷、氣象因素、日期類型等特征。若上一次迭代得到的決策樹的損失函數(shù)為L[y,ft-1(x)],其中y為負(fù)荷真實值,ft-1(x)為上一次迭代的決策樹模型,則本次損失函數(shù)的負(fù)梯度為
(7)
其中,f(x)=ft-1(x)。
本次損失函數(shù)為
L[yi,f(xi)]=L[y,ft-1(x)]+ht(x)
(8)
式中:ht(x)——本次要尋找的弱回歸樹。
對于每個葉子節(jié)點中的樣本,找到使損失函數(shù)最小,即擬合葉子節(jié)點最優(yōu)的預(yù)測值Ctj,公式為
(9)
式中:j——第t棵弱決策樹的葉子節(jié)點個數(shù),j=1,2,3,…,k;
c——采用線性索引方法找到使所有區(qū)域損失函數(shù)最小的最優(yōu)常數(shù)。
最終得到的本次強回歸決策樹的表達(dá)式為
(10)
式中:I——單位陣。
梯度提升決策樹的最終預(yù)測模型為
F(x)=f0+f1(x)+…+fm(x)
(11)
式中:fi(x)——決策樹i的預(yù)測結(jié)果,i=1,2,3,…,n。
梯度提升決策樹模型如圖2所示。
圖2 梯度提升決策樹模型
本文所用數(shù)據(jù)為北方某地區(qū)的電力負(fù)荷數(shù)據(jù)。原數(shù)據(jù)中包含了2016年1月1日至2018年5月31日共29個月的真實電力負(fù)荷數(shù)據(jù)和氣象數(shù)據(jù),負(fù)荷數(shù)據(jù)的采集頻率為一日一次,氣象數(shù)據(jù)包括最低溫度、最高溫度、最低濕度、最高濕度。
選擇2016年1月1日至2017年12月31日的負(fù)荷數(shù)據(jù)和氣候數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),選擇2018年1月1日至2018年5月31日的負(fù)荷數(shù)據(jù)為預(yù)測數(shù)據(jù)。最終確定:輸入變量為預(yù)測日前1日和前7日的負(fù)荷數(shù)據(jù);氣候數(shù)據(jù)為每日最低氣溫、最高氣溫、最低濕度、最高濕度;日期變量包括星期變量,分別為星期一到星期日,以及是否為工作日、是否為節(jié)假日等日期類型變量。每一日的數(shù)據(jù)為一條樣本,每條樣本共有11個輸入變量。
為了體現(xiàn)本文所提方法的通用性,增加一組負(fù)荷數(shù)據(jù)進(jìn)行驗證。該數(shù)據(jù)為歐洲智能技術(shù)網(wǎng)絡(luò)(EUNITE)競賽負(fù)荷預(yù)測樣本數(shù)據(jù),數(shù)據(jù)包括了1997年、1998年斯洛伐克東部電力公司某電廠的真實負(fù)荷數(shù)據(jù),以及1997年、1998年每年的節(jié)假日數(shù)據(jù)和每日的天氣數(shù)據(jù)。本文采用1997年1月1日到1998年8月31日的數(shù)據(jù)作為訓(xùn)練集,預(yù)測1998年9月1日到12月31日的用電負(fù)荷,其中輸入變量為預(yù)測日前1日和前7日的負(fù)荷數(shù)據(jù);氣候數(shù)據(jù)為每日溫度;日期變量包括星期變量,分別為星期一到星期日,以及是否為工作日、是否為節(jié)假日等。每一日的數(shù)據(jù)為一條樣本,每條樣本共有7個輸入變量。
4.2.1 異常數(shù)據(jù)處理
在原始數(shù)據(jù)中由于信息傳遞過程中可能產(chǎn)生錯誤,所以導(dǎo)致一些異常值的出現(xiàn),而且出現(xiàn)了少量的數(shù)據(jù)丟失。這些丟失或異常的數(shù)據(jù)會影響預(yù)測的準(zhǔn)確度,應(yīng)該首先予以處理。采用文獻(xiàn)[8]提出的解析分析法以及修正法來搜索異常數(shù)據(jù)和補充缺少的數(shù)據(jù)。
4.2.2 數(shù)據(jù)歸一化
由于各輸入數(shù)據(jù)的量綱不同,各特征向量之間數(shù)值差距過大,會影響最后整體的預(yù)測結(jié)果,因此對輸入數(shù)據(jù)先進(jìn)行歸一化處理。歸一化后使各特征向量的數(shù)據(jù)限制在[0,1]。歸一化的公式為
(12)
式中:x*——歸一化后的數(shù)值;
x——需要歸一化的數(shù)據(jù);
xmin,xmax——該數(shù)據(jù)里的最小值和最大值。
4.2.3 評價指標(biāo)
為了評估模型預(yù)測的性能,設(shè)置平均絕對百分誤差yMAPE和平均預(yù)測精度yFA.avg2項指標(biāo)。計算公式分別為
(13)
(14)
(15)
式中:n——預(yù)測天數(shù);
xact(i),xpre(i)——第i天負(fù)荷的真實值和預(yù)測值。
將數(shù)據(jù)進(jìn)行預(yù)處理后,分別使用SVR,RF,GBDT 3種算法對本文所提出的新特征進(jìn)行負(fù)荷預(yù)測,并與采用年、月、日作為日期特征的傳統(tǒng)方法進(jìn)行對比。我國北方某地區(qū)的電力負(fù)荷預(yù)測結(jié)果對比如表3所示。
表3 預(yù)測結(jié)果對比
圖3為使用新特征后3種不同算法的實際值與預(yù)測值的折線圖。由圖3可知:SVR,RF,GBDT這3種算法的平均預(yù)測精度分別為98.0%,99.3%,97.8%,相對于傳統(tǒng)算法,絕對百分誤差分別下降了28.57%,22.22%,12.00%。整體來看,預(yù)測值大部分與實際值接近或重合,且沒有出現(xiàn)個別點誤差很大的情況,表明本文提出方法能夠較為準(zhǔn)確地對負(fù)荷進(jìn)行預(yù)測。
圖3 北方某地區(qū)的電力負(fù)荷實際值與預(yù)測值對比
斯洛伐克東部某電廠的電力負(fù)荷預(yù)測結(jié)果對比如表4所示。
表4 斯洛伐克東部某電廠的電力負(fù)荷預(yù)測結(jié)果對比
圖4為使用新特征后3種不同算法的實際值與預(yù)測值的折線圖。由圖4可知:SVR,RF,GBDT 3種算法的平均預(yù)測精度分別為96.40%,97.74%,96.14%,相對于傳統(tǒng)算法,絕對百分誤差分別下降了21.74%,15.36%,11.47%。
圖4 斯洛伐克東部某電廠的電力負(fù)荷實際值與預(yù)測值對比
通過在2個數(shù)據(jù)集上進(jìn)行驗證,表明本文所提出的方法對于電力負(fù)荷的變化趨勢和局部細(xì)節(jié)均有較好的預(yù)測效果,相對于傳統(tǒng)的方法,預(yù)測誤差明顯降低,可以有效地提高預(yù)測精度。
考慮到負(fù)荷曲線并沒有明顯時間規(guī)律,本文提出了一種使用新特征的短期負(fù)荷預(yù)測方法。由于負(fù)荷本身在短時間內(nèi)是一個連續(xù)變化的曲線,并不會發(fā)生突變,因此引入前幾日的歷史負(fù)荷數(shù)據(jù)作為新特征進(jìn)行負(fù)荷預(yù)測,并與現(xiàn)有的負(fù)荷預(yù)測方法進(jìn)行了比較。實驗結(jié)果表明,本文所提方法能有效地減少預(yù)測誤差,提高了預(yù)測準(zhǔn)確率,具有一定的實用意義。在今后的工作中,將會驗證該特征運用在其他算法是否有相似結(jié)論。