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

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

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

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

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