朱江行,鄒曉松,熊煒,袁旭峰,2,艾小清,彭月
(1.貴州大學電氣工程學院,貴州省貴陽市 550025;2.貴州電網有限公司電力科學研究院,貴州省貴陽市 550002)
在我國高速經濟發(fā)展中,電力負荷的預測已成為一項重要而艱巨的任務。通過可靠且高質量的負荷預測模型準確地預測電負荷及其變化趨勢能夠為電網制定調度策略、供電計劃提供重要參考[1-2]。
電力系統(tǒng)信息化的發(fā)展,分布式電源的大量使用以及電動汽車的出現(xiàn),增加了配電網中電力消耗的復雜性,對電負荷預測的準確性和穩(wěn)定性提出了更高的要求。國內外眾多學者已對電力負荷預測的理論和方法開展了大量的研究,針對用電負荷的預測,常用的方法主要包括時間序列分析法和機器學習分析法兩類[3-4]:時間序列分析方法主要包含指數(shù)平滑模型法[5]、自回歸方法[6]和累積自回歸滑動平均(Auto regressive Integrated Moving Average model,ARIMA)方法[7]等,時間序列分析方法主要根據(jù)歷史電負荷和現(xiàn)在電負荷預測未來電負荷,但其只考慮了數(shù)據(jù)的時間相關性因素,并沒有考慮外界因素對預測對象的影響,故當有特殊時段時,其預測結果偏差可能較大;機器學習分析法主要包含專家系統(tǒng)法[8]、支持向量機(support vector regression,SVM)[9]、隨機森林[10]和人工神經網絡(Artificial Neural Network,ANN)[11]等。文獻[12]提出了一種基于嶺回歸估計的徑向基函數(shù)神經網絡短期負荷預測方法,解決了輸入多重共線性問題;文獻[13]利用改進的PSO-RVM (Particle swarm optimization-Relevance Vector Machine)算法對各小波分量進行預測然后疊加得到最終預測值,為后期運行可靠性評估提供數(shù)據(jù)支撐,機器學習分析法能夠考慮氣象、時間及日期等多特征進行預測,提高預測精度。此外也有不少研究人員將多種單一模型進行結合得到混合模型;文獻[14]針對負荷數(shù)據(jù)時序性和非線性的特點,通過卷積神經網絡(Cellular Neural Network,CNN)構建多特征向量作為長短期記憶網絡(Long Short-Term Memory,LSTM)的輸入,將CNN與LSTM有效結合,進一步提高了預測精度;文獻[15]采用誤差倒數(shù)法將LSTM與XGBoost (Xtreme gradient boosting)結合,修正單一模型誤差較大的時序數(shù)據(jù),以降低單一預測模型誤差。
Prophet模型可將時間序列通過一定的函數(shù)變換為每小時、每日、每周、每季度及每年等不同時間維度的組合模式,并加以整體趨勢[16],其主要考慮了時間相關性,對氣象等因素考慮較少;XGBoost算法運行速度較快,并且通過人為對數(shù)據(jù)進行預處理,構建考慮氣象,日期等多因素的特征向量,考慮了多因素影響[17]。兼顧Prophet和XGBoost各自獨有的優(yōu)點,本文提出一種基于Prophet-XGBoost混合模型的短期負荷預測方法,較單一模型預測精度更高,較SVR模型運行時間更短。
2017-02-24,F(xiàn)acebook發(fā)布了時間序列預測框架Prophet,與傳統(tǒng)的時間序列預測方法相比,有以下優(yōu)點:其具有較好的靈活性,輕松適應多個季節(jié)的季節(jié)性,并通過分析對趨勢做出不同的假設;測量值不必呈等間距分布,也不需要插值缺失值;擬合速度較快;預測模型具有易于解釋的參數(shù),這些參數(shù)可通過分析對預測進行強加。
Prophet實質上是一個基于自加性模型的預測時間序列數(shù)據(jù)的模型,模型整體可以分解為三個主要部分:趨勢項(growth) g (t)、季節(jié)項 (seasonality)s(t)、 節(jié)假日項(holidays) h (t),它們通過下式疊加在一起:
式中:εt代表誤差項,一般情況下,假設其服從均值為0的正態(tài)分布,其主要用來反映未在模型中體現(xiàn)的異常變動。
g(t)為趨勢函數(shù),包括調節(jié)模型光滑度的參數(shù)和不同程度的假設,主要是對時間序列中的分段線性增長或logistic飽和增長等非周期性變化進行建模,根據(jù)數(shù)據(jù)中的變化點(changepoint)檢測趨勢走向。本文采用logistic飽和增長模型,基本趨勢項采用一個邏輯回歸模型:
式中:k 代表增長率; b(t) 表 示偏移量;C (t)為模型容量;隨著t的 增加, g (t) 趨 近于C (t)。
s(t)代表周期性變化,為了擬合并預測季節(jié)的效果,Prophet基于傅里葉級數(shù)提出了一個靈活的模型, s(t)可根據(jù)以下公式進行估算:
式中: N 代表周期總數(shù); T代表某個固定的周期(年度數(shù)據(jù)的 T是365.25,周數(shù)據(jù)的 T 是7); 2n代表期望在模型中使用該周期的個數(shù); a1,a2,···aN,b1,b2,···bN表示模型中需要估計的參數(shù)。
h(t)代表節(jié)假日效果,節(jié)假日和大事件都會導致時間序列中出現(xiàn)可預測的波動。不同節(jié)假日及大事件在不同時刻下的影響都能建立獨立模型,給每個獨立模型制定一個時間窗口,其中考慮了節(jié)假日的影響有窗口期(如中秋節(jié)的前幾天和后幾天),同一個窗口期中的影響為相同值。節(jié)假日效果模型 h(t)根據(jù)以下公式進行估算:
式中:L為節(jié)假日集合;i為 第i節(jié) 假日;κi為對應節(jié)假日對預測值的影響因子; Di為窗口期中包含的時間t。
定義 Z (t)=[1(t∈D1),···1(t∈DL)],可得:
電力負荷數(shù)據(jù)具有時序性,本文利用Prophet模型對歷史電力負荷數(shù)據(jù)進行實驗,模型構建步驟如下:
1)數(shù)據(jù)處理。
Prophet的輸入量是一個包含兩列的數(shù)據(jù)框,第一列為日期,第二列為與日期相對應的電力負荷數(shù)據(jù),本文采用西南地區(qū)某地市2013-01-01至2015-12-31日的電力負荷數(shù)據(jù),數(shù)據(jù)的采樣周期為1h,包含了每天24個采樣點的負荷情況,其中訓練集選為2013-01-01到2015-03-13的電力負荷數(shù)據(jù),預測目標為2015-03-14日各小時點的電力負荷。
2)參數(shù)調優(yōu)。
在python3.7環(huán)境下調用fbprophet軟件包,Prophet預測模型中對實驗結果影響較大的參數(shù)有趨勢模型、轉折點數(shù)量、季節(jié)擬合度和假期擬合度。具體步驟如下:
① 選擇趨勢模型為分段線性的趨勢;
② 根據(jù)電力負荷數(shù)據(jù)的規(guī)律給參數(shù)轉折點設定一個初始值為2,選擇季節(jié)擬合度和假期擬合度的初始值都分別為8和9,并在節(jié)假日項中設置節(jié)假日特征如表1所示;
表1 節(jié)假日特征表Table 1 Holidays feature list
③ 用處理好的訓練集對Prophet模型進行訓練,通過作圖觀察擬合效果,調節(jié)上述模型參數(shù),使模型預測效果最佳。
XGBoost實現(xiàn)的是一種通用的Tree Boosting算法,相比梯度提升算法,性能有10倍以上的提升。所用樹模型是回歸數(shù)(CART)模型,樹的集成模型為:
XGBoost模型的目標函數(shù) L包含兩部分:
式中:γ 和 λ 為懲罰系數(shù);T 為葉子節(jié)點個數(shù);w為葉子節(jié)點的分數(shù)。
式(7)在計算過程中,通過尋找最佳 ft(xi),不斷疊加來最小化目標函數(shù)。第t 輪的目標函數(shù)可改寫為:
對式(9)進行二階泰勒近似展開,定義Ij={i|q(xi=j)} 為 第 j棵樹每一葉子中的樣本集合。其中,為一階導數(shù),為二階導數(shù),于是可得:
對上式中 w 求偏導可得最優(yōu) w為:
將式(12)代入式(11)可得:
目標函數(shù)越小則模型越好,在訓練過程中,應用貪心算法對子樹進行劃分,并枚舉可行的分割點,不斷計算結點損失以選擇增益最大的葉子結點。增益 LGain的計算公式如下:
式中:第1項為左子樹分裂后的增益;第2項為右子樹分裂后的增益;第3項表示不進行子樹分裂的增益。
綜合考慮氣象,日期等因素對電力負荷數(shù)據(jù)的影響,采用XGBoost模型對電力負荷數(shù)據(jù)進行預測,模型的構建步驟如下:
1)數(shù)據(jù)處理。
在1.1節(jié)的數(shù)據(jù)基礎上加入氣象數(shù)據(jù),構建數(shù)據(jù)集,將前5個時刻的負荷數(shù)據(jù),工作日信息,溫度,濕度,風速,降雨量構建特征向量作為輸入,預測第6個時刻的負荷數(shù)據(jù),訓練集與預測范圍同1.1節(jié)。
2)參數(shù)調優(yōu)。
在python3.7環(huán)境下調用XGBoost軟件包,XGBoost預測模型的參數(shù)由3種類型組成, 其中通用參數(shù)用于宏觀函數(shù)控制,Booster參數(shù)用于決定每一步的booster,學習目標參數(shù)用于控制學習的表現(xiàn),具體步驟如下:
①確定各個參數(shù)初始值及范圍如表2所示;
表2 參數(shù)初始化值及范圍Table 2 Initialization value and range of parameters
②采用網格搜索法對迭代次數(shù)、函數(shù)、下采樣、列占比及學習率進行高負荷搜索,通過觀察擬合效果,調整各參數(shù)值,如:若過擬合,則減小下采樣值,直到達到最好的效果。
根據(jù)電力負荷數(shù)據(jù)分別構建Prophet模型和XGBoost機器學習模型,假設在 t時刻,Prophet模型的預測值為 P(t),XGBoost機器學習模型的預測值為 X(t), t=1,2,···,n,然后采用誤差倒數(shù)法將兩個單一模型進行組合。此時,定義集成后的Prophet-XGBoost混合預測模型為:
式中: εP,εX分別為Prophet和XGBoost的平均相對誤差; Yt為 t時刻的混合預測值。
應用如式(16)和式(17)所示的倒數(shù)誤差法求取權重,該方法通過對平均相對誤差小的模型賦較大的權重,使整個混合模型的平均相對誤差趨于減小,得到更準確的預測值。
基于Prophet-XGBoost混合模型的電力負荷預測流程如圖1所示。
圖1 Prophet-XGBoost混合模型預測流程Fig.1 Forecasting flow chart of Prophet-XGBoost hybrid model
為評估各預測模型的質量,本文采用平均相對誤差(mean absolute percentage error,MAPE),平均誤差(mean error,ME)和均方根誤差(root mean square error,RMSE)作為預測評價指標。各評價指標的計算方法如下:
式中:yt代 表t時 刻電力負荷值實際值;代 表t時刻電力負荷預測值;n代表電力負荷數(shù)據(jù)數(shù)量。
本文采用西南地區(qū)某地市2013-01-01至2015-12-31的電力負荷數(shù)據(jù)、氣象數(shù)據(jù)、工作日數(shù)據(jù),分別采用1.1節(jié)和2.1節(jié)所述方法對Prophet模型和XGBoost模型進行參數(shù)調優(yōu),各最優(yōu)參數(shù)如表3、表4所示。
表3 Prophet模型各參數(shù)最優(yōu)值Table 3 Optimal values of parameters in Prophet model
表4 XGBoost模型各參數(shù)最優(yōu)值Table 4 Optimal values of parameters in XGBoost model
通過實驗,式(1)中趨勢項、季節(jié)項、節(jié)假日項3部分對應的分析結果如圖2所示,圖2(a)至圖2(b)依次為總體增長趨勢、節(jié)假日項、日周期趨勢。
由圖2可知,該地區(qū)電力負荷呈現(xiàn)上升趨勢,各節(jié)假日對電力負荷的影響程度不同,從日趨勢來看,白天用電量多于夜晚用電量,符合實際情況。
混合模型與各單一模型的預測值和實際值的對比如圖3所示,各模型的平均相對誤差如圖4所示,MAPE、ME和RMSE值如表4所示。
圖2 組成成分分析Fig.2 Component analysis
圖3 各模型預測曲線對比圖Fig.3 Comparison of forecasting curves by various models
圖4 各模型平均相對誤差對比Fig.4 Comparison of mean relative error by various models
由圖可3知,各模型對次日實際負荷預測都得到較好的結果,其中本文所提出的Prophet-XGBoost混合預測模型相比三個單一模型有更高的預測精度,其預測曲線與實際曲線變化趨勢相似,Prophet模型較XGBoost模型精確度更高,SVR模型精確度最低。由圖4可知本文提出的Prophet-XGBoos混合預測模型各時刻平均相對誤差較小且波動不大,有效降低了預測誤差,表現(xiàn)出更好的預測效果。由表5可知,與SVR模型,單一Prophet模型和XGBoost模型相比,Prophet-XGBoos混合預測模型具有最小的MAPE、ME及RMSE值,分別為5.3%、2.643 MW和1.625 MW。與SVR模型相比,Prophet-XGBoos混合預測模型運行時間縮短了60%,大大提升了預測效率。
表5 MAPE、ME和RMSETable 5 MAPE、ME and RMSE
1)混合模型中的Prophet模型對數(shù)據(jù)中的趨勢變化點和節(jié)日效應具有出色的適應能力,尤其對大量的異常值、缺失值和趨勢轉變的魯棒性極強,降低了數(shù)據(jù)波動性對預測的不利影響。
2)應用誤差倒數(shù)法將Prophet模型和XGBoost機器學習模型進行結合得到Prophet-XGBoost混合模型,其兼顧了兩個單一模型各自的優(yōu)點,彌補了單一模型預測誤差較大的缺陷,該混合模型達到了提升短期負荷預測精度的效果。