俞 勝,黃福興,馮艷麗,葉天地,袁培森
(1.南瑞集團(tuán)(國網(wǎng)電力科學(xué)研究院)有限公司,江蘇南京 211106;2.南京農(nóng)業(yè)大學(xué)人工智能學(xué)院,江蘇南京 210095;3.華東師范大學(xué)數(shù)據(jù)科學(xué)與工程學(xué)院,上海 200062)
構(gòu)建以新能源為主體的新型電力系統(tǒng),既是我國電力系統(tǒng)轉(zhuǎn)型升級的重要方向,也是實現(xiàn)碳達(dá)峰、碳中和目標(biāo)的關(guān)鍵途徑[1]。新型電力系統(tǒng)是以實現(xiàn)碳達(dá)峰碳中和、貫徹新發(fā)展理念、構(gòu)建新發(fā)展格局、推動高質(zhì)量發(fā)展的內(nèi)在要求為前提,以能源電力安全為基本保障,以滿足經(jīng)濟(jì)社會發(fā)展電力需求為首要目標(biāo),以最大化消納新能源為主要任務(wù),以堅強(qiáng)智能電網(wǎng)為樞紐平臺,以源網(wǎng)荷儲互動與多能互補為支撐,具有清潔低碳、安全可控、靈活高效、智能友好、開放互動基本特征的電力系統(tǒng)。數(shù)據(jù)驅(qū)動的新型電力系統(tǒng)中發(fā)展是促進(jìn)轉(zhuǎn)型升級、提高電網(wǎng)數(shù)字化水平、構(gòu)建“互聯(lián)網(wǎng)+”智能電網(wǎng)的核心內(nèi)容之一[2]。
高級量測體系(Advanced Metering Infrastructures,AMI)是智能電網(wǎng)的重要組成部分,是一個測量、收集、儲存、分析和運用用戶用電信息的完整網(wǎng)絡(luò)處理系統(tǒng),可為智能電網(wǎng)提供更加有效的技術(shù)支持,但AMI 也面臨著電能數(shù)據(jù)丟失、異常用電量測不準(zhǔn)確等問題。新型電力系統(tǒng)也面臨著電力負(fù)荷結(jié)構(gòu)與特性變化的問題,未來用電需求持續(xù)增長[3],必須要進(jìn)行大規(guī)??鐓^(qū)電力調(diào)配,因此對電力負(fù)荷數(shù)據(jù)的預(yù)測以及對電力負(fù)荷異常值與空值的修改、填補更加重要。
傳統(tǒng)的電力負(fù)荷預(yù)測方法主要集中于基于統(tǒng)計學(xué)的方法和基于機(jī)器學(xué)習(xí)的方法。基于統(tǒng)計學(xué)的方法主要包含時間序列[4]、回歸分析[5-7]、灰色模型[8]等,基于機(jī)器學(xué)習(xí)的方法主要包含隨機(jī)森林(Random Forest,RF)[9]、極限學(xué)習(xí)機(jī)[10]、支持向量機(jī)[11]、梯度樹[12]等。傳統(tǒng)電力負(fù)荷預(yù)測的優(yōu)點在于模型較為簡單,針對小規(guī)模電力負(fù)荷數(shù)據(jù)預(yù)測效果較好,缺點是對大規(guī)模數(shù)據(jù)準(zhǔn)確度仍然不夠高,并且對于受多重因素影響的電力負(fù)荷難以做出較好的預(yù)測。近些年來,隨著深度學(xué)習(xí)的發(fā)展,部分研究者也通過神經(jīng)網(wǎng)絡(luò)等方法進(jìn)行電力負(fù)荷預(yù)測,例如,楊國華等[13]從特征組合角度出發(fā),提出了一種基于Holt-Winters 指數(shù)平滑的特征組合,并與時間卷積網(wǎng)絡(luò)結(jié)合對短期電力負(fù)荷進(jìn)行了準(zhǔn)確的預(yù)測。鐘勁松等[14]提出了一種基于最大相關(guān)最小冗余(Max-Relevance and Min-Redundancy,mRMR)和長短期記憶(Long Short-Term Memory,LSTM)神經(jīng)網(wǎng)絡(luò)的短期電力負(fù)荷預(yù)測模型,能夠更好地處理波動大、隨機(jī)性較強(qiáng)的用戶負(fù)荷時間序列。陳梓行等[15]構(gòu)建門控循環(huán)單元(Gate Recurrent Unit,GRU)網(wǎng)絡(luò)進(jìn)行負(fù)荷預(yù)測,并引入改進(jìn)麻雀搜索算法(Improved Sparrow Search Algorithm,ISSA)算法對GRU 網(wǎng)絡(luò)參數(shù)進(jìn)行客觀配置,通過ISSA 進(jìn)行參數(shù)配置后的GRU 網(wǎng)絡(luò)模型具有良好的非線性擬合能力和應(yīng)用效果。王歡等[16]考慮到電力負(fù)荷預(yù)測呈現(xiàn)出非線性、多因素、非平穩(wěn)態(tài)等問題,通過卷積神經(jīng)網(wǎng)絡(luò)結(jié)合長短期記憶網(wǎng)絡(luò)解決了負(fù)荷預(yù)測中存在的非平穩(wěn)態(tài)問題,并且實現(xiàn)了多步長的預(yù)測。深度學(xué)習(xí)方法在大規(guī)模高緯度的電力負(fù)荷數(shù)據(jù)集上進(jìn)行預(yù)測時可取得較好的效果,并且對受多重因素影響的電力負(fù)荷也能做出較好的預(yù)測,但其模型較為復(fù)雜,且文獻(xiàn)[17-21]通過多種方法組合進(jìn)行預(yù)測,增加了計算模型的復(fù)雜性。
綜上所述,針對當(dāng)前電力負(fù)荷預(yù)測模型復(fù)雜、預(yù)測不可解釋、對電力負(fù)荷異常值與空值的修補相關(guān)研究較少等問題,提出一種基于Neural Prophet 模型的電力負(fù)荷預(yù)測和數(shù)值修補方法,借助時間序列和回歸分析的思想,考慮電力負(fù)荷數(shù)據(jù)受季節(jié)性的影響,從而實現(xiàn)對電力負(fù)荷數(shù)據(jù)的準(zhǔn)確預(yù)測,有效對異常的電力負(fù)荷數(shù)據(jù)進(jìn)修改,對缺失的電力負(fù)荷數(shù)據(jù)進(jìn)行填補,并且基于Neural Prophet 模型的電力負(fù)荷預(yù)測結(jié)果具有較好的可解釋性。
1.1.1 電力負(fù)荷數(shù)據(jù)修補框架
本文使用Neural Prophet 模型進(jìn)行電力負(fù)荷數(shù)據(jù)修補的流程如圖1 所示,包括以下5 個步驟:
圖1 Neural Prophet電力負(fù)荷數(shù)據(jù)修補流程圖Fig.1 Flow chart of power load data patching based on Neural Prophet
1)對待預(yù)測的電力負(fù)荷數(shù)據(jù)進(jìn)行預(yù)處理,包括刪除多余屬性列、將時間屬性列和電力負(fù)荷屬性列分別重命名、劃分訓(xùn)練集和測試集等。
2)設(shè)置Neural Prophet 模型的學(xué)習(xí)率等參數(shù),Neural Prophet 模型的趨勢模塊、季節(jié)性模塊及自回歸模塊會根據(jù)設(shè)置的參數(shù)對輸入的電力負(fù)荷數(shù)據(jù)進(jìn)行訓(xùn)練。得到訓(xùn)練好的Neural Prophet 模型后,分別在訓(xùn)練集和測試集上計算預(yù)測誤差。
3)根據(jù)Neural Prophet 模型各個模塊的參數(shù)信息和預(yù)測誤差對參數(shù)進(jìn)行調(diào)整和優(yōu)化,然后重新訓(xùn)練預(yù)測效果最優(yōu)的模型。
4)使用該模型預(yù)測未來一定時間段的電力負(fù)荷數(shù)據(jù),預(yù)測時間段可由用戶根據(jù)實際需要指定。
5)使用Neural Prophet 模型對電力負(fù)荷進(jìn)行預(yù)測后,對原本電力負(fù)荷數(shù)據(jù)出現(xiàn)的異常值進(jìn)行修改,對空值進(jìn)行填補。
1.1.2 負(fù)荷數(shù)據(jù)修補過程
數(shù)據(jù)驗證與修補技術(shù)是指驗證、預(yù)估以及修改數(shù)據(jù)。其規(guī)則為原始數(shù)據(jù)經(jīng)過驗證找出遺漏、失敗或錯誤的數(shù)據(jù),再經(jīng)由估算規(guī)則進(jìn)行計算,最后修改問題數(shù)據(jù)。以數(shù)據(jù)驗證與修補技術(shù)為基礎(chǔ),使用Neural Prophet 模型對電力負(fù)荷數(shù)據(jù)進(jìn)行預(yù)測后,對問題數(shù)據(jù)進(jìn)行修補的完整過程如圖2 所示。
Neural Prophet 是一種基于神經(jīng)網(wǎng)絡(luò)對時間序列數(shù)據(jù)進(jìn)行建模的方法,它通過模塊組合對時間序列進(jìn)行預(yù)測。Neural Prophet 模型[22]由6 個模塊組成,每個模塊都有其單獨的輸入和建模過程。每個模塊都產(chǎn)生h個輸出,h定義為1 次預(yù)測的步數(shù)。Neural Prophet 模型如式(1)所示:
所有模塊都可以單獨配置并組合成模型。本文采用趨勢模塊、季節(jié)性模塊和自回歸模塊組成的Neural Prophet 模型進(jìn)行電力負(fù)荷預(yù)測如圖3 所示。
圖3 Neural Prophet電力負(fù)荷預(yù)測流程圖Fig.3 Flow chart of power load forecasting based on Neural Prophet
1.2.1 趨勢模塊
Neural Prophet 模型使用增長率與偏移量結(jié)合的方法對趨勢模塊進(jìn)行建模,如式(2)所示:
式中:δ(t)為隨時間變化的增長率;ρ(t)為隨時間變化的偏置。
Neural Prophet 模型在實際使用時有學(xué)習(xí)率參數(shù)。默認(rèn)學(xué)習(xí)率由算法自動估計:設(shè)置學(xué)習(xí)率以1×10-7開始,以1×102結(jié)束,執(zhí)行100+log10(10+T)·50次迭代,其中T為數(shù)據(jù)數(shù)量。每次迭代后,學(xué)習(xí)率以指數(shù)方式增加,迭代完成后去除前10 次和后5次迭代的學(xué)習(xí)率結(jié)果,選擇使損失負(fù)梯度值最大的學(xué)習(xí)率為初始學(xué)習(xí)率。進(jìn)行3 次測試得到3 個學(xué)習(xí)率并計算3 次測試值的對數(shù)均值,如式(3)所示,通過對數(shù)均值計算最終的學(xué)習(xí)率,如式(4)所示:
式中:η1,η2,η3為3 次測試的學(xué)習(xí)率;η?為3 次測試學(xué)習(xí)率計算得到的均值;η為最終學(xué)習(xí)率。
1.2.2 季節(jié)性模塊
Neural Prophet 模型中季節(jié)性模塊的值是通過傅里葉變換來計算的,Neural Prophet 模型為不同的季節(jié)性周期定義了對應(yīng)的傅里葉項個數(shù),如式(5)所示:
式中:q為季節(jié)性周期;k為q的傅里葉項的個數(shù);aj和bj為傅里葉變換過程中的傅里葉系數(shù);j為傅里葉項計數(shù)標(biāo)記。
在多個季節(jié)性場景中,可為每個周期定義不同的值。每個傅里葉項由正弦和余弦變換的加權(quán)組合來建模。
Neural Prophet 模型每種季節(jié)性周期的傅里葉項的默認(rèn)數(shù)值如表1 所示。
表1 每種季節(jié)性周期的傅里葉項的默認(rèn)數(shù)值Table 1 Default value of Fourier term for each seasonal cycle
對于時刻t,模型中考慮的所有季節(jié)性周期因素的影響可以用式(6)中的S(t)表示。
式中:Q為所有被激活的季節(jié)性周期的集合;為被激活的單個季節(jié)性周期的值。
季節(jié)性模塊根據(jù)數(shù)據(jù)頻率和長度自動激活日、周或年的季節(jié)性周期。如果數(shù)據(jù)頻率的分辨率高于某個周期,并且至少有2 個完整周期的數(shù)據(jù),則此周期會被激活。例如如果電力負(fù)荷數(shù)據(jù)每小時采集1 次,且有2 周的電力負(fù)荷數(shù)據(jù),那么日季節(jié)性周期和周季節(jié)性周期會被激活,年季節(jié)性周期不會被激活。
Neural Prophet 模型同時支持加法和乘法季節(jié)性周期模式,默認(rèn)為加法模式。當(dāng)季節(jié)性周期模式配置為乘法模式時,季節(jié)性周期傅里葉變換計算的值需要與趨勢模塊的值相乘得到最終的季節(jié)性周期的值,如式(7)所示:
1.2.3 自回歸模塊
自回歸(Auto-regression,AR)是指將一個變量的未來值與過去值進(jìn)行回歸的過程,包含的過去值的數(shù)量通常稱為AR(p)模型的階數(shù)p。對每個過去的值擬合一個系數(shù)θi來控制特定過去值對預(yù)測方向和幅度的影響。一個經(jīng)典的AR 過程如式(8)所示:
式中:yt為預(yù)測AR 效應(yīng);c為截距;εt為t時刻的白噪聲;yt-i{i=1,...p}為t-i時AR 效應(yīng)。
傳統(tǒng)的AR 模型對于h=1 時的1 步預(yù)測只會產(chǎn)生1 個預(yù)測值。如果需要獲得h>1 的多步預(yù)測,則必須擬合h個模型。Neural Prophet 模型中的AR模塊基于AR-Net[23]修改,能夠用單個模型產(chǎn)生多個預(yù)測結(jié)果,如式(9)所示:
式中:At(t),At(t+1),...,At(t+h-1)為AR 模塊產(chǎn)生的h個預(yù)測步的值;yt-1,yt-2,...,yt-p為AR 模塊的輸入變量。
該模塊最重要的參數(shù)是要回歸的過去值的數(shù)量,也稱為AR(p)模型的階數(shù)p。通常將p設(shè)置預(yù)測步數(shù)h的2 倍。
1)本文的實驗環(huán)境為Ubuntu 18.04.6 LTS 64 位系統(tǒng),8G 內(nèi)存,Intel(R)Xeon(R)CPU@2.30 GHz。算法使用PyTorch 1.11.0 框架和Python 3.7 實現(xiàn)。
2)本文使用加州大學(xué)歐文分校機(jī)器學(xué)習(xí)存儲庫中公開的Tetouan 地區(qū)的電力負(fù)荷數(shù)據(jù)集。該數(shù)據(jù)集包含了從2017-01-01 0:00 到2017-12-30 23:50 每隔10 min 的電力負(fù)荷數(shù)據(jù),共52 416 個采樣點,本文選取其中的時間和區(qū)域一電力負(fù)荷數(shù)據(jù)組成本文的電力負(fù)荷數(shù)據(jù)集,并且按照8:2 劃分為訓(xùn)練集和測試集。
本文采用平均絕對誤差(Mean Absolute Error,MAE)衡量模型對電力負(fù)荷預(yù)測的效果,如式(10)所示:
式中:EMA為平均絕對誤差;yi為實際值;為預(yù)測值。
本文針對Neural Prophet 模型的趨勢、季節(jié)性和自回歸3 個模塊進(jìn)行參數(shù)選擇,其對應(yīng)的參數(shù)分別為學(xué)習(xí)率η、季節(jié)性周期模式m和階數(shù)p。本文對η,m,p3 個參數(shù)尋找優(yōu)值。將初始的階數(shù)選擇為預(yù)測點前48 h 的數(shù)據(jù)量,由于數(shù)據(jù)集是每10 min的電力負(fù)荷數(shù)據(jù),因此將p設(shè)置為6×24×2,m全部設(shè)置為默認(rèn)的加法模式。測試在默認(rèn)學(xué)習(xí)率以及學(xué)習(xí)率從0.010 0 變化到0.110 0 時,在訓(xùn)練集上Neural Prophet 模型進(jìn)行電力負(fù)荷預(yù)測的MAE 值最小的學(xué)習(xí)率為0.05。
設(shè)置學(xué)習(xí)率η=0.05,階數(shù)p=6×24×2,測試季節(jié)性周期模式m為加法和乘法對預(yù)測效果的影響。結(jié)果顯示在訓(xùn)練集上,季節(jié)性周期模式被配置為乘法時Neural Prophet 模型進(jìn)行電力負(fù)荷預(yù)測的MAE值比加法時的小。
階數(shù)對比實驗將階數(shù)設(shè)置為不同的值,設(shè)置學(xué)習(xí)率η=0.05,季節(jié)性周期模式m為乘法。結(jié)果顯示當(dāng)階數(shù)p配置為6×24×2 時,Neural Prophet 模型進(jìn)行電力負(fù)荷預(yù)測的MAE 值最小。
對η,m,p3 個參數(shù)尋優(yōu)的過程,是通過固定其中2 個參數(shù)尋找第3 個參數(shù)的最優(yōu)值,因此本文對η,m,p3 個參數(shù)進(jìn)行組合測試。η選擇0.03,0.05,0.07,m選擇加法和乘法2 種模式,p選擇6×24×1,6×24×2 和6×24×3。實驗參數(shù)設(shè)置及通過Neural Prophet 模型進(jìn)行電力負(fù)荷預(yù)測在訓(xùn)練集和測試集上的MAE 值如表2 所示。
表2 不同參數(shù)組合預(yù)測結(jié)果的MAE值Table 2 EMA prediction results with different parameter combination
由表2 可知,當(dāng)η=0.05,m為乘法,p=6×24×2時,Neural Prophet 模型進(jìn)行電力負(fù)荷預(yù)測的MAE值最小,因此采用這3 個參數(shù)。
采用本文方法與線性回歸(Linear Regression,LR)[24]、RF、線性支持向量機(jī)(Linear Support Vector Machine,LSVM)[25]、反向傳播神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Network,BPNN)[26],LSTM,GRU 算法對電力負(fù)荷進(jìn)行預(yù)測。采用MAE 指標(biāo)評估算法的預(yù)測效果,在訓(xùn)練集和測試集上算法的MAE 值如表3所示。
表3 各個算法預(yù)測結(jié)果的MAE值Table 3 EMA of prediction results of each algorithm
由表3 可知:(1)在訓(xùn)練集上,本文方法相較LR,LSVM,BPNN,LSTM,GRU 的MAE 值分別下降了13.28%,13.87%,24.81%,26.19%,26.25%,相較RF 的MAE 值提高了165.30%,本文方法效果僅次于RF;(2)在測試集上,本文方法的MAE 值相較LR,RF,LSVM,BPNN,LSTM,GRU 的MAE 值分別下降了19.02%,32.89%,21.54%,34.56%,26.80%,26.83%。由此說明本文方法在測試集上的MAE 值最小,預(yù)測效果最好,采用本文方法進(jìn)行電力負(fù)荷預(yù)測具有較優(yōu)的準(zhǔn)確性且預(yù)測水平較穩(wěn)定。
本文模型參數(shù)的可解釋性是相比于許多其他時間序列預(yù)測算法的一大優(yōu)勢。以某一預(yù)測點的自回歸模塊為例,有p=6×24×2=288 個過去的電力負(fù)荷數(shù)據(jù)點,數(shù)據(jù)點間時間間隔為10 min,采用本文方法對預(yù)測點進(jìn)行預(yù)測,288 個過去點在自回歸過程中所占的權(quán)重如圖4 所示,其中橫軸每10 min記為1 步,縱軸為自回歸過程中與預(yù)測點相差對應(yīng)步數(shù)的點所占的權(quán)重。
圖4 預(yù)測時自回歸模塊中過去點的權(quán)重Fig.4 Weight of past points in AR module when forecasting
由圖4 可知:(1)在自回歸模塊中,與預(yù)測點相差步數(shù)為1 和2 的2 個過去點權(quán)重占比最高,因為與預(yù)測點相差步數(shù)最近的2 個點是最新的電力負(fù)荷數(shù)據(jù),權(quán)重貢獻(xiàn)最高;(2)與預(yù)測點相差步數(shù)在141~147 范圍的過去點的權(quán)重占比也較高,這是因為前一天同時段的電力負(fù)荷數(shù)據(jù)權(quán)重貢獻(xiàn)也較高。圖4 中每個點對負(fù)荷預(yù)測點影響的權(quán)重不同,參數(shù)具有良好的可解釋性。
使用本文方法對電力負(fù)荷數(shù)據(jù)進(jìn)行預(yù)測后,對出現(xiàn)的異常值進(jìn)行修改,對空值進(jìn)行填補。使用本文方法對2017-12-24 至2017-12-31 時間段內(nèi)電力負(fù)荷數(shù)據(jù)值進(jìn)行預(yù)測,與原本的真實值進(jìn)行對比,電力負(fù)荷數(shù)據(jù)修補圖如圖5 所示,假設(shè)圖中實線為本文方法預(yù)測的電力負(fù)荷數(shù)據(jù)值,黑點為實際的電力負(fù)荷數(shù)據(jù)值,紅框圈出的點為電力負(fù)荷數(shù)據(jù)值缺失,綠框圈出的點為電力負(fù)荷數(shù)據(jù)異常值。
圖5 電力負(fù)荷數(shù)據(jù)修補圖Fig.5 Power load data patching chart
由圖5 可以看出,采用本文方法預(yù)測的電力負(fù)荷數(shù)據(jù)值較為準(zhǔn)確。當(dāng)紅框圈出的電力負(fù)荷數(shù)據(jù)值缺失時,可將其用于電力負(fù)荷空值的填補;當(dāng)綠框圈出的電力負(fù)荷數(shù)據(jù)值為異常值時,可將其用于電力負(fù)荷數(shù)據(jù)異常值的修改。
本文對新型電力AMI 系統(tǒng)中電力負(fù)荷預(yù)測與修補問題進(jìn)行了研究?;跁r序分解的Neural Prophet 模型,通過將趨勢模塊、季節(jié)性模塊和自回歸模塊相結(jié)合對時間序列自相關(guān)進(jìn)行建模,實現(xiàn)了對電力負(fù)荷的精確預(yù)測。本文方法在測試集上對電力負(fù)荷進(jìn)行預(yù)測的平均絕對誤差值為215.73,與經(jīng)典時序預(yù)測算法相比更穩(wěn)定且更準(zhǔn)確;獲得的預(yù)測值可對有問題的電力負(fù)荷數(shù)據(jù)值修正或填補。