王華勇,楊 超,唐 華
(貴州大學電氣工程學院,貴州 貴陽 550025)
我國經濟正處于高速發展階段,負荷預測在電力系統規劃以及電網可靠、經濟運行過程中發揮著至關重要的作用。對于電網調度機構而言,負荷預測對于發(供)電計劃的制定、電網的供需平衡以及電力市場的平穩運行具有十分重要的意義。因此,需要提高負荷預測的精度,進而提高電力設備的利用率、降低電網運行風險。由于科學技術的進步,相應的負荷預測理論與技術得到了飛速的發展,理論研究逐步深入[1-2]。
近年來,電力負荷預測理論以及方法不斷出現。人工神經網絡[3]、粒子群算法[4]、小波去噪和決策樹[5]、支持向量機[6-7]、時間序列[8-9]、數據挖掘[10]、回歸分析[11-12]、決策樹和專家系統、模糊理論等方法,為負荷預測提供了理論基礎。但是目前已有的一些方法仍存在較大的局限性。例如:神經網絡的訓練過程中,因學習不足導致的過擬合現象時有發生,且算法收斂速度較慢、較易陷入局部最優;時間序列法的電力負荷短期預測,對歷史數據的準確性要求較高。隨著時代的發展,對于負荷的需求越來越個性化,但是目前已有的預測算法在預測速度和預測精度上還無法滿足要求。小數據的預測采用局部加權線性回歸,速度快、誤差小。但是當數據增多時,這種方法需要為每個測試點尋找近鄰,會加劇運算量,造成單機運算時間成倍增加。因此,如何處理數據量大規模增加時,預測時間過長、預測精度不夠的問題就顯得尤為重要。
本文以貴州省某區縣的數據為基礎,將基于LightGBM的梯度提升決策樹(gradient boosting decison tree,GBDT)算法模型運用到短期電力負荷預測的研究中。該方法首先需要對所采集到的基礎數據進行篩選、分類和整理,然后整理相應的特征值,最后對預測數據進行驗證。
梯度提升決策樹算法最早是由斯坦福大學教授Friedman于2001年提出的一種迭代決策樹算法。該算法利用最速下降法,將損失函數的負梯度在當前模型的值作為殘差的近似值,然后用殘差近似值擬合出一個回歸樹。該算法的決策過程涉及眾多決策樹,將所有樹運行得到的結論進行累加進而得到最終的結果。
GBDT算法進行訓練模型時,不能使用類似于mini-batch的方法,而是需要對樣本進行無數次的遍歷。如果想要提高訓練的速度,就必須提前把樣本數據加載到內存中;但這樣會造成可以輸入的樣本數據受限于內存的大小。如果想要訓練更多的樣本,就必須采用外存版本的決策樹算法。然而在I/O數量眾多的情況下,算法運行速度仍相對較慢。為了使GBDT能夠更加高效地使用更多的樣本,學者開始考慮引入分布式GBDT。但是相對于分布式GBDT,LightGBM更具優越性。
LightGBM是一個梯度提升框架,它采用了以學習算法為基礎的決策樹。該框架訓練效率更快、使用內存更低、準確率更高。除此之外,它還支持并行學習,可以處理規模龐大的數據。
LightGBM是基于兩個目標設計的:針對單個機器,力爭在不犧牲數據處理速度的前提下,盡可能多地使用數據;多機并行時,最大限度地減少通信時間,降低其帶來的損失,并在計算上實現線性加速。
LightGBM采用了histogram決策樹算法,將樣本中連續的浮點特征值離散化成K個整數,同時構造一個寬度為K的直方圖。遍歷時,將離散化后的值作為索引在直方圖中累計統計量,然后根據直方圖的離散值,遍歷尋找最優的分割點。這樣可以有效地降低內存消耗,同時達到降低時間復雜度的目的。
LightGBM采用了一種更為高效的葉子生長策略,即帶深度限制的按葉子生長策略(Leaf-wise)。該策略在分裂前會遍歷所有葉子,然后找到分裂增益最大的葉子進行分裂,并往復循環。在相同的分裂次數下,Leaf-wise能夠得到更好的精度。同時,在Leaf-wise中添加了防止過擬合的最大深度限制。其生長策略如圖1所示。圖1中:白點表示分裂增益最大的葉子;黑點表示分裂增益不是最大的葉子。

圖1 Leaf-wise葉子生長策略圖
LightGBM的另一個優化是histogram作差加速。一般情況下,構造一個葉子的直方圖,而且父親節點和兄弟節點直方圖的寬度都為K,因此作差過程中僅需要計算K次,從而在運行速度上得到了很大的提升。
除此之外,LightGBM直接支持類別特征,不需要額外的0/1展開。
(1)對所有的特征進行分桶歸一化。

(2)計算初始梯度值gm(xi)。
(1)
式中:fm-1(x)設置為0或隨機值。
(3)建立樹,直到葉子數目限制或是所有葉子不能分割。
①計算直方圖。
式中:hij=(cij,lij)。
②從直方圖中獲得分裂收益,選取最佳分裂特征G、分裂閾值I。
(2)
(3)
③建立根節點。
s=arg max(Gi) 1≤i≤m
(4)
Node=(s,GS,IS)
(5)
④根據最佳分裂特征分裂閾值,將樣本切分。
(4)更新樹的梯度值gm(xi)。
(5)重復步驟(3)和步驟(4),直到所有的樹都建成。
與傳統的GBDT方法相比,本文方法具有分布式運行、更快的訓練效率、更低的內存使用、更好的準確率等特點。
誤差產生的原因有很多:①數學模型的簡化和忽略各種因素之間的關系;②歷史數據不夠完整;③參數選取不當造成誤差。
本文所采集的數據為某省某縣負荷數據以及氣象數據,訓練采用2015年7月1日至2015年8月18日的用電數據,共一千多組,并在此基礎上預測2015年8月19日的電力負荷。在負荷預測中同時又考慮到溫度、濕度、是否是工作日、上一小時最大負荷等特征值對電力負荷的影響。
訓練所采用的用電數據類型為夏季典型日負荷,負荷曲線如圖2所示。

圖2 夏季典型日負荷曲線
由圖2可以看出,負荷在5點左右達到全天最低值,然后負荷開始向上攀升到9點左右后,負荷緩慢上升到11點左右;隨后開始下降到13點左右到達一個低谷,并在緩慢上升到21點左右達到峰值后下降。由此可見,該曲線在中午和晚上各出現一次峰值。
通過對改進前后的GBDT算法進行訓練,可以得到如圖3所示的日負荷預測對比曲線。

圖3 日負荷預測對比曲線
從圖3可以看出:在3點到6點這一時間段,未改進的算法預測值略優于改進后的算法;在6點到9點這一時間段,兩者的預測值精度都比較好;但是9點以后,可以很明顯地看出改進算法預測精度的優勢。此外,改進算法的運行時間為13.12 s,傳統算法的運行時間為14.28 s。因此,相較于傳統算法,改進算法的運行速度得到了提高。
在采用histogram決策樹算法和帶深度限制的按葉子生長策略的基礎上,運用LightGBM梯度提升框架對GBDT算法進行了改進,將其應用于短期負荷預測。然后,對一千多組的數據進行了訓練,得到了 GBDT算法以及基于LightGBM改進的GBDT算法的負荷預測值。對兩者的負荷預測值的對比分析表明,相較于未改進的GBDT算法,改進后的算法在預測精度和運行速度上都有了相應的提高。訓練結果表明,所提方法不僅可以提升計算效率,還可以提升負荷預測精度。除此之外,基于LightGBM的改進GBDT算法在數據挖掘領域也有良好的應用前景。