彭 湃,劉 敏
(貴州大學電氣工程學院,貴陽 550025)
電力市場改革是我國發展的必然趨勢與要求,電力供需將通過實時交易實現一種平衡,同時節能減排是全球的重要目標。在此背景下,高精度的短期負荷預測對于電力系統的調度管理部門制定高效經濟的發電計劃、合理安排機組出力、保證電力系統的安全性和穩定性、提高經濟效益以及減少不必要的能源消耗有著重要的意義[1-2]。與此同時,隨著智能電網的發展,高精度的負荷預測越來越成為迫切的需求[1-4]。
短期負荷預測需要大量的歷史數據,研究并找出影響負荷的因素,國內外學者對此做出了大量的研究[5-9]。常用的方法有隨機森林[10]、基于自回歸移動平均ARIMA(autoregressive integrated moving av?erage)模型[11]、卡爾曼濾波法[12]、支持向量機[13]和深度學習[14]等,基于電力數據的時間序列特性來預測未來的負荷數據。例如:文獻[15]用到的一種基于改進的支持向量機的空間負荷預測方法,文獻[16]基于隨機森林的電力系統小時負荷預測研究,文獻[17-20]采用了深度學習和神經網絡的方法來預測,文獻[21]采用改進型決策樹模型來優化歷史數據的特征處理能力。這些算法的問題對數據的節日效應和變化趨勢點的適應性還是較差,而被用于數據預測的Prophet模型[22]在時間序列數據預測具有很強的優勢,同時能出色地適應數據的節日效應和變化趨勢點。但是長期歷史數據中的隱藏特征不止這些,而長短期記憶LSTM(long-short term memory)神經網絡在學習和挖掘長期歷史數據中的隱藏非線性和非周期性等特征有獨特的優勢。
短期負荷預測的精度受各種因素(如節假日、溫度等)的影響,當前在此方面的研究探索還較少,再加上各類負荷預測模型在擬合負荷特征并做出預測的能力還不夠強,因而負荷預測的精度還不足。本文提出了一種基于LSTM網絡和Prophet組合模型的短期負荷預測方法模型,簡稱Prophet-LSTM模型。該方法將Prophet與LSTM的優點結合起來,分別用兩種模型建模,Prophet模型考慮數據的周期性、節日效應和變化趨勢點,LSTM神經網絡模型學習長期歷史數據的特征,最后用最小二乘法賦予權重。Prophet-LSTM模型預測的結果與隨機森林、ARIMA以及單獨的Prophet或LSTM相比,具有更高的精確度。
電力負荷的變化受節假日、天氣、溫度等因素影響,具有自己獨特的變化規律。因此,需要對其特性進行分析,然后才能對癥下藥,用合適的模型完成負荷預測,從而獲得更高精度的預測結果。本文對2014年全球能源大賽(GEFCom2014)上的電力負荷數據進行分析,節假日的負荷會發生明顯的變化。如圖1所示是連續7天的負荷變化曲線。

圖1 連續7天負荷變化曲線Fig.1 Changing curve of load for seven continuous days
圖1中,本文選取2012-04-04—2012-04-10的數據。從2012-04-06周六開始,當天的整體負荷曲線相比于周五明顯下降,2012-04-07周日全天的整體負荷曲線仍是下降趨勢,而從周一(2012-04-08)開始,每天的整體負荷逐步上升。這是因為雙休日大部分企業工廠休假,負荷會明顯降低,周一新的工作日,企業工廠陸續開始上班,負荷因此重新上升。觀察每天的曲線會發現,隨著時間的推移,11:00左右負荷慢慢上升達到一個頂峰,接近17:00時負荷又慢慢下降到一個低谷,21:00時負荷再次到達一個高峰,之后慢慢下降,直到第二天00:00。這是因為11:00時達到上班的高峰期,到了下午隨著企業工廠開始下班,負荷曲線慢慢走向低谷。
每到雙休日假期,負荷會出現類似的周期性變化,且負荷明顯降低,其他節假日是否會有其他變化呢?本文的數據是國外的負荷數據,所以選取圣誕節作為觀察對象。該假期期間的負荷曲線如圖2所示。

圖2 圣誕節期間負荷變化曲線Fig.2 Changing curve of load over Christmas period
如圖2所示,圣誕節(2012-12-25)前3天整體負荷曲線都保持一個較高的水平,而到了圣誕節當天,由于節假日各企業工廠休假,整體負荷相比之前有明顯的降低。圣誕節過后,在正常的工作日下,負荷又重新上升到較高的水平。
綜上所述,周末時負荷曲線會因為節日效應發生類似周期性的變化,在其他節假日負荷會降低,而在一天之內,由于正常的作息工作,負荷會有頻繁的變化趨勢。負荷曲線會隨著時間的變化而變化。分析發生這種變化的原因,并將這種特性輸入到負荷預測模型中,用來提高負荷預測的精度。若只考慮周期性、節假日和變化趨勢建模,忽視大量歷史數據中隱藏的非線性非周期性的特征,實際預測精度并不會提高。本文利用Prophet在預測時序性數據的周期性、節假日和趨勢變化上的優勢,并結合LSTM神經網絡學習大量時序性歷史數據中的隱藏關系的能力,組成新的負荷預測模型。
Prophet是Facebook一款基于Python和R語言的數據預測工具即“先知”,用于預測時序性數據,并有開源的Prophet包可直接使用。與傳統的時序性預測模型ARIMA不同,Prophet整合了建模和評估兩大模塊,實現了時間序列模型的快速迭代優化。因此,對于時間序列的預測問題,可當作曲線擬合問題來完成。這使得模型更靈活,也使交互式探索成為可能。由于Prophet對于數據的節假日和趨勢變化點有出色的表現,特別是對于趨勢變化點,Prophet將自動檢測這些變化點,并允許適當調整。Prophet模型[22]的基本流程如圖3所示。

圖3 Prophet流程Fig.3 Flow chart of Prophet
Prophet作為一個預測時間序列數據的加法模型,主要由趨勢性g(t)、節假日h(t)、周期性s(t)3個部分組成,其組合公式為

(1)g(t)用于擬合時間序列中的分段線性增長或邏輯增長等非周期變化,用這個部分來擬合趨勢性變化點,該部分在經歷非線性增長后到達飽和值,這種類型的增長常采用logistic增長模型,基本形式為

式中:C(t)為飽和值(承載能力);k為增長率;m為偏置參數;sj為第j個變點的時刻;γ為sj處的平滑處理偏移量,j=1,2,…,S,在這些轉變點增長率會發生變化;δ=δj表示在時間tj處的變化量;aj(t)T為aj(t)的轉置向量。
(2)s(t)表示周期變化,主要依靠傅里葉級數來構造靈活的周期性模型,其具體形式為

式中:T為周期;an、bn為平滑參數。
(3)h(t)為非規律性的節假日效應,由于節假日的周期性不固定,使得它們不能通過周期性模型來實現。這里認為每個節假日是相互獨立的,h(t)的具體形式為


式中:Di為第i個節假日過去和未來的時間列表集合,i=1,2,…,L;κ為每個節假日設定的一個參數;ν為節假日的影響力,ν越大,則該節假日的影響力越大。
(4)εt表示誤差項,是無法預測的因素,一般認為其服從高斯分布。
LSTM網絡是循環神經網絡RNN(recurrent neural network)的一種變體,RNN在處理時間序列的問題比普通神經網絡更有優勢,但是其具有梯度消失的問題。而LSTM通過增加門限,很大程度上解決了梯度消失的問題,同時加強了對長期歷史數據的記憶能力,因此對于長距離的時序性數據的信息提取有很強的優勢性。該模型是目前應用最成功的循環神經網絡。其網絡結構如圖4所示。

圖4 LSTM網絡結構Fig.4 Structure of LSTM network
LSTM的基本單元是由遺忘門、輸入門和輸出門組成。神經網絡的輸入門由上一個單元的輸出ht-1、Ct-1和本次的輸入Xt共同構成。然后用sig?moid函數σ為激活函數,它的輸出矢量就是遺忘門,并通過矩陣點乘應用到舊的記憶中Ct-1,并形成新的記憶閥Ct。新的記憶本身是由另一個神經網絡產生的,它也是一個單層網絡,但使用tanh作為激活功能。最后,需要為這個LSTM單元生成輸出。該步驟具有由新記憶,前一個神經網絡的輸出ht-1,當前的輸入xt和偏置矢量控制的輸出閥。其計算公式分別為


式中:it為遺忘門;ft為輸入門;ct為當前狀態儲存單元;ot為輸出門;ht為中間輸出的狀態;W為權重系數矩陣;bi、bf、bc、bo為偏置矢量;tanh=(ex-e-x)/(ex+e-x)。
LSTM作為時間序列預測模型,以n個時刻的數據[X(t-n),X(t-n+1),…,X(t-1),X(t)]作為輸入來預測(t+1)時刻的輸出。本文以時間序列數據n和時間序列數據對應的負荷數據s的二維向量作為輸入。并把數據進行標準化,將數據映射到[0,1]之間,其公式為

在訓練LSTM模型時,為了防止過擬合,本文設置了過擬合參數(Dropout)來改善這種現象。該參數是指在每次輸入時隨機丟棄一些特征,從而提高模型的魯棒性。它是通過不停改變網絡的結構,使神經網絡記住的不是訓練數據本身,而是能學習數據中隱藏的規律性的特征。對輸入采用過擬合參數,即到每個LSTM模塊的輸入連接上的數據將會以一定概率在前向激活和反向權值更新的過程中失去作用,本文設置過擬合參數為0.2。為了更優化LSTM模型,還需要設置隱藏層數(n_hidden)、訓練輪數(epochs)、窗口長度(batch_size)等參數。通過多次訓練對比,取如表1所示的參數時LSTM模型有較好的表現效果。

表1 參數初始化值Tab.1 Initial values of parameters
本文提出的Prophet-LSTM組合預測模型是一種綜合考慮了周期性、趨勢性、節假日性以及長期歷史數據慣性的時間序列模型。先由Prophet和LSTM模型分別對負荷進行預測,然后賦予權值給2個模型,組合模型由兩者相加而得。設Prophet和LSTM在t時刻的預測值分別為P1(t)和P2(t),令Prophet的權重為α1,LSTM的權重為α2。則最終的預測模型為

α1和α2由最小二乘法來確定。由此解得的α1和α2為使得組合預測模型P(t)與真實值最接近的值。組合模型基本流程如圖5所示。

圖5 組合模型構架Fig.5 Architecture of combination model

本文以GEFCom2014的電力負荷數據作為實驗數據,該數據的時間跨度是2006-01-01—2013-03-31,周期是每小時一個負荷,一共63 528個數據。以前面80%的數據作為訓練集,后面20%的數據作為測試集。最后將組合模型的結果與ARIMA、隨機森林、LSTM和Prophet模型進行對比,驗證本文提出的模型具有更高的精確度。
本文選取平均絕對百分比誤差MAPE(mean absolute percentage error)、平均誤差ME(mean error)和預測精度FA(forecasting accuracy)3項評價指標作為每個模型的評價指標[18]。這3項評價指標的公式分別為

本文使用英偉達的顯卡、120 GB硬盤、I7處理器作為實驗所用的硬件設備,用Python3.6語言來實現各種算法,同時,為了提高程序的運行速度,采用keras框架,并用GPU版本的tensorflow,該版本的tensorflow在適配英偉達顯卡的情況下在運行神經網絡速度方面有明顯的優勢性。Prophet模型的運行采用官方開源的fbprophet包。
將上述所提出的Prophet-LSTM組合模型訓練完成后,對2013-03-22—2013-03-31的電力負荷進行日前的短期預測,并與LSTM、Prophet、隨機森林、ARIMA模型的預測值進行對比,其結果如圖6所示。采用了MAPE和ME作為評價指標,對比了各模型的預測效果,其結果如表2所示。

圖6 預測結果對比Fig.6 Comparison among forecasting results

表2 預測精度比較Tab.2 Comparison of forecasting accuracy
表2中Y(1d)MAPE、Y(1d)ME和Y(10d)MAPE,Y(10d)ME分別代表1 d的百分比誤差、平均誤差和10 d的百分比誤差、平均誤差。
從圖6和表2可知,單獨的LSTM預測模型和Prophet預測模型比隨機森林預測模型和ARIMA預測模型精度高,而Prophet-LSTM組合模型的精度最高,預測效果明顯優于其他模型,其1 d和10 d的預測精度分別為98.68%和98.11%,并且其預測曲線十分接近于真實值曲線。
Prophet作為facebook預測流量的工具,本文根據其優勢將其與神經網絡LSTM相結合,用GEF?Com2014年全球能源大賽上的電力負荷數據來驗證分析,得出以下結論。
(1)在分析負荷數據具有的變化特征的前提下,結合Prophet在出來趨勢變化點和周期性等方面的能力,實驗結果表明Prophet預測模型具有不錯的預測效果。
(2)基于LSTM神經網絡在學習長期大量的歷史數據并發掘數據中潛在的時序性和非線性關系的能力,本文通過最小二乘法將其與Prophet預測模型結合起來,同時發揮兩者的優勢,實驗證明組合模型的預測結果比單獨模型的更精確。
(3)在后續的研究中,可以考慮增加更多的影響電力負荷的因素,比如天氣、溫度等,并將其作為LSTM神經網絡的一部分輸入,從而提升預測精度。
(4)該方法在不同規模下的預測還需要進一步的研究,比如在不同的地區有更復雜變化特征的負荷下是否能有更優秀的表現。
(5)未來還可以將Prophet自動處理數據變化趨勢的能力應用起來,并將預測模型推廣到電動汽車充電樁和儲能等具有更復雜變化規律的負荷預測中。