常俊曉,金之榆,盧 姬,吳思圓
(1.國(guó)網(wǎng)浙江省電力有限公司臺(tái)州供電公司,浙江 臺(tái)州 318000;2.國(guó)網(wǎng)浙江省電力有限公司臨海市供電公司,浙江 臨海 317000)
為實(shí)現(xiàn)能源轉(zhuǎn)型升級(jí),達(dá)成“雙碳”目標(biāo),大力發(fā)展光伏產(chǎn)業(yè)已經(jīng)確定為國(guó)家既定國(guó)策,光伏發(fā)電將迎來(lái)黃金機(jī)遇期。2020 年,光伏新增裝機(jī)48.2 GW,棄光量達(dá)52.6 億kWh。準(zhǔn)確預(yù)測(cè)光伏發(fā)電功率對(duì)充分挖掘源網(wǎng)荷儲(chǔ)調(diào)節(jié)潛力,提升消納利用率具有重要意義[1]。
光伏發(fā)電功率具有較大的波動(dòng)性和隨機(jī)性,其預(yù)測(cè)方法主要分為物理法和統(tǒng)計(jì)法。物理法主要通過(guò)天氣預(yù)報(bào)、衛(wèi)星遙感測(cè)量和地面測(cè)量設(shè)備來(lái)獲得預(yù)測(cè)所需數(shù)據(jù),對(duì)設(shè)備要求較高;統(tǒng)計(jì)法是一種數(shù)據(jù)驅(qū)動(dòng)的方法,根據(jù)歷史數(shù)據(jù)提取特征來(lái)預(yù)測(cè)未來(lái)的光伏發(fā)電功率,成本低且適應(yīng)性強(qiáng),得到廣泛應(yīng)用[2]。當(dāng)氣象類型相同時(shí),光伏發(fā)電具有較高的相似性,發(fā)電功率大小與各種氣象特征有著密切的聯(lián)系[3-4]。因此,對(duì)氣象數(shù)據(jù)進(jìn)行聚類分析,針對(duì)不同氣象類型的數(shù)據(jù),選用相似日樣本數(shù)據(jù)進(jìn)行預(yù)測(cè)可以有效提高預(yù)測(cè)精度[5-6]。但目前聚類方法存在最佳聚類數(shù)難以確定和初始聚類中心隨機(jī)選擇導(dǎo)致聚類結(jié)果不穩(wěn)定的缺點(diǎn)。文獻(xiàn)[7]針對(duì)K-means 聚類算法(K-均值聚類算法)無(wú)法聚類確定最佳聚類數(shù)的缺點(diǎn),提出了自適應(yīng)K-means 聚類算法,并結(jié)合了LSTM(長(zhǎng)短時(shí)記憶網(wǎng)絡(luò))算法,在提高預(yù)測(cè)精度上取得了較好的效果,但是并沒(méi)有解決K-means 聚類算法初始聚類中心隨機(jī)選擇的缺點(diǎn),隨著數(shù)據(jù)集規(guī)模的增大容易導(dǎo)致聚類結(jié)果不穩(wěn)定;文獻(xiàn)[8]通過(guò)減法聚類確定K-means 聚類算法的最佳聚類數(shù),通過(guò)分散選取聚類中心的方法避免聚類結(jié)果陷入局部最優(yōu),但降低了聚類速率。在預(yù)測(cè)模型方面,傳統(tǒng)的GBDT(梯度提升樹(shù))算法存在預(yù)測(cè)結(jié)構(gòu)簡(jiǎn)單、預(yù)測(cè)精度低的缺點(diǎn)。XGBoost(極端梯度提升)算法[9]是一種基于決策樹(shù)的集成學(xué)習(xí)算法,使用梯度上升框架,在數(shù)據(jù)分類以及回歸處理方面有著顯著的效果,廣泛應(yīng)用于天文學(xué)、氣象、電力等領(lǐng)域中的預(yù)測(cè)分析。文獻(xiàn)[10-11]中使用XGBoost 算法建立了光伏發(fā)電功率預(yù)測(cè)模型,實(shí)驗(yàn)證明該算法具有較好的實(shí)用性和可行性,但沒(méi)有充分考慮天氣對(duì)光伏發(fā)電功率預(yù)測(cè)精度的影響。
基于上述分析,本文提出基于集成聚類和XGBoost 的短期光伏發(fā)電功率預(yù)測(cè)方法。首先,采用Mean-shift(均值漂移算法)、凝聚層次聚類算法確定初始聚類中心,結(jié)合DBI(戴維森堡丁指數(shù))確定最佳聚類數(shù),得到自動(dòng)確定最佳聚類數(shù)且聚類結(jié)果穩(wěn)定的集成聚類算法;然后,采用集成聚類算法對(duì)數(shù)據(jù)進(jìn)行聚類,得到不同氣象類型的預(yù)測(cè)樣本集;最后,對(duì)各種天氣類型的訓(xùn)練集數(shù)據(jù)分別采用參數(shù)少、計(jì)算效率高的XGBoost 集成學(xué)習(xí)算法訓(xùn)練模型,結(jié)合訓(xùn)練完成的模型分別對(duì)晴天、多云、陰雨天3 種天氣類型的測(cè)試集數(shù)據(jù)進(jìn)行算例分析,驗(yàn)證了所提組合預(yù)測(cè)算法可以得到更加精確的預(yù)測(cè)結(jié)果。
相比于傳統(tǒng)的GBDT 算法,XGBoost 具有更強(qiáng)的擴(kuò)展性,而且可以同時(shí)使用一階和二階導(dǎo)數(shù),能更好地獲得代價(jià)函數(shù)的信息量,提高預(yù)測(cè)結(jié)果的精確度;且XGBoost 算法使用類似隨機(jī)森林的策略對(duì)數(shù)據(jù)進(jìn)行采樣,不需要重復(fù)調(diào)取數(shù)據(jù),這使得計(jì)算效率大大提高[12]。
設(shè)有n 個(gè)樣本和m 個(gè)特征的數(shù)據(jù)集D=(xi,yi),其中,yi∈R。提升樹(shù)模型中構(gòu)建了K 個(gè)樹(shù),表示為F={f1(x),f2(x),…,fk(x)},k∈K;目標(biāo)函數(shù)表達(dá)式如下:
式中:fk為XGBoost 中的一個(gè)CART 回歸樹(shù)函數(shù);表示預(yù)測(cè)值;yi為真實(shí)值。
經(jīng)過(guò)t 次迭代后將XGBoost 擬合殘差代入式(1),并對(duì)其進(jìn)行二階泰勒展開(kāi),得到新的目標(biāo)函數(shù):
為了學(xué)習(xí)模型中的函數(shù)集合,XGBoost 模型最小化正則化目標(biāo)如下:
式中:fk(x)=wq(x),q(x)為輸入測(cè)試集樣本決策樹(shù)葉子結(jié)點(diǎn)編號(hào)的映射,表征決策樹(shù)結(jié)構(gòu);w 為決策樹(shù)的輸出值;設(shè)每個(gè)樹(shù)的節(jié)點(diǎn)樣本集合為IJ={i q(xi)=j};T 為每個(gè)回歸樹(shù)的葉子節(jié)點(diǎn)數(shù);γ 為葉子節(jié)點(diǎn)個(gè)數(shù);λ 為正則化項(xiàng)懲罰系數(shù)。
將式(3)和式(2)進(jìn)行組合可得XGBoost 基于加法方式的迭代函數(shù):
假設(shè)式(4)中q(xi)的值固定,求導(dǎo)得到目標(biāo)函數(shù)的極值點(diǎn),代入式(4)可得最終目標(biāo)函數(shù):
Obj(t)表示選定樹(shù)結(jié)構(gòu)增益損失的最大值,其數(shù)值越小表示模型精度越高,在模型訓(xùn)練過(guò)程中XGBoost 算法利用誤差函數(shù)不斷優(yōu)化模型。
不同的氣象特征數(shù)據(jù)具有不同的數(shù)量級(jí),對(duì)于聚類算法來(lái)說(shuō),將氣象特征數(shù)據(jù)集中到一個(gè)范圍內(nèi)可以提升模型的收斂速度,得到更好的聚類結(jié)果。影響光伏發(fā)電功率的氣象特征有溫度、壓強(qiáng)、濕度、輻照度和實(shí)發(fā)輻照度[13],采用最大-最小歸一化方法預(yù)處理數(shù)據(jù),得到式(6):
式中:xmax,xmin分別為樣本中特征最大值和最小值;xnew為歸一化后的樣本x。
將實(shí)驗(yàn)數(shù)據(jù)集表示為H,數(shù)據(jù)集中的日氣象特征表示為:
式中:xi表示第i天的氣象特性樣本;xnt,xnp,xnw,xnr,xne分別表示第n 時(shí)刻的溫度、壓強(qiáng)、濕度、輻照度和實(shí)發(fā)輻照度。
K-means 聚類算法[14]無(wú)法確定最佳聚類數(shù),且初始聚類中心選擇具有隨機(jī)性,導(dǎo)致聚類結(jié)果不穩(wěn)定。為此,本文設(shè)計(jì)的集成聚類算法,其基本思路是使用Mean-shift 密度聚類確定初始聚類中心,通過(guò)凝聚層次聚類和聚類結(jié)果評(píng)價(jià)指標(biāo)確定最佳聚類數(shù)。具體過(guò)程:首先在經(jīng)過(guò)數(shù)據(jù)預(yù)處理的數(shù)據(jù)集上進(jìn)行Mean-shift 密度聚類,對(duì)得到的聚類中心使用凝聚層次聚類算法進(jìn)行組合;再根據(jù)聚類結(jié)果評(píng)價(jià)指標(biāo),將相似的聚類中心合并,得到新的聚類中心和聚類數(shù);最后將新的聚類中心和聚類數(shù)分別作為K-means 聚類算法的初始聚類中心和最終聚類數(shù)對(duì)數(shù)據(jù)集再次進(jìn)行聚類,得到最終的聚類結(jié)果。
2.2.1 Mean-shift 聚類
Mean-shift 算法是Fukunaga 團(tuán)隊(duì)提出的一種無(wú)參數(shù)密度估計(jì)算法,又稱均值漂移算法。由于這種算法可以應(yīng)用在任意形狀數(shù)據(jù)集的密度估計(jì)中,因而在數(shù)據(jù)聚類、圖像追蹤中應(yīng)用廣泛。它通過(guò)計(jì)算當(dāng)前樣本的均值偏差來(lái)不斷更新類簇的中心點(diǎn),直到類簇中心收斂到概率密度極大值處,并且不需要提前設(shè)置聚類數(shù)。用Mean-shift算法對(duì)電力負(fù)荷曲線進(jìn)行初步聚類可以在全局范圍內(nèi)確定聚類中心,避免聚類結(jié)果陷入局部最優(yōu)。
2.2.2 凝聚層次聚類
在集成聚類算法中,凝聚層次聚類可以看作對(duì)K-means 聚類算法初始聚類中心的預(yù)處理步驟,它對(duì)Mean-shift 算法選出的聚類中心進(jìn)行組合。為了確定最佳聚類數(shù),解決K-means 聚類算法受初始聚類中心影響較大的問(wèn)題,采用聚類質(zhì)量高、結(jié)果穩(wěn)定的凝聚層次聚類算法,可以輸出較好且穩(wěn)定的聚類中心組合,從而使得K-means算法聚類結(jié)果更優(yōu)。
集成聚類算法的具體步驟如下:
1)通過(guò)Mean-shift 算法對(duì)數(shù)據(jù)集進(jìn)行聚類處理,得到S 個(gè)聚類中心。
2)采用凝聚層次聚類對(duì)CA的聚類中心進(jìn)行合并,合并結(jié)束條件為“是否達(dá)到事先給定的聚類數(shù)目”,需要通過(guò)聚類有效性指標(biāo)來(lái)確定最佳的聚類數(shù)目kbest,得到合并后的聚類中心。
3)將kbest以及聚類中心作為K-means 聚類算法的輸入?yún)?shù)和初始聚類中心對(duì)數(shù)據(jù)集進(jìn)行聚類,輸出聚類結(jié)果。
聚類流程如圖1 所示。
圖1 集成聚類流程
本文采用集成聚類和XGBoost 組合預(yù)測(cè)算法對(duì)短期光伏發(fā)電功率進(jìn)行預(yù)測(cè),具體流程如圖2所示。
圖2 組合預(yù)測(cè)流程
1)獲取功率數(shù)據(jù)與氣象數(shù)據(jù)樣本,選取溫度、壓強(qiáng)、濕度、輻照度和實(shí)發(fā)輻照度為氣象特征分量。
2)采用集成聚類對(duì)訓(xùn)練集氣象數(shù)據(jù)聚類處理,得到不同氣象類型的預(yù)測(cè)樣本集。
3)預(yù)測(cè)模型初始化,并對(duì)XGBoost 算法的主要參數(shù)尋優(yōu),直至訓(xùn)練網(wǎng)格模型最優(yōu);然后利用不同氣象類型的訓(xùn)練集樣本分別訓(xùn)練XGBoost 算法預(yù)測(cè)模型。
4)通過(guò)計(jì)算測(cè)試集樣本與聚類中心的距離來(lái)確定預(yù)測(cè)樣本的氣象類型,輸入對(duì)應(yīng)氣象類型的預(yù)測(cè)模型中得到預(yù)測(cè)結(jié)果。
本文實(shí)驗(yàn)數(shù)據(jù)來(lái)自某市一個(gè)三相并網(wǎng)光伏發(fā)電系統(tǒng),數(shù)據(jù)采集天數(shù)為600 天,日氣象特征向量為每隔15 min 采集一次的溫度、壓強(qiáng)、濕度、輻照度和實(shí)發(fā)輻照度,共600 個(gè)樣本。考慮到光伏發(fā)電的特殊性,將預(yù)測(cè)時(shí)間區(qū)間設(shè)定為6:00—18:00。
以所有樣本的溫度、壓強(qiáng)、濕度、輻照度和實(shí)發(fā)輻照度作為輸入,分別采用K-means 聚類算法和集成聚類算法進(jìn)行聚類??紤]到K-means 聚類算法的不穩(wěn)定性,對(duì)數(shù)據(jù)進(jìn)行多次(20 次)聚類,取最優(yōu)值,其中輸出類簇的設(shè)置范圍為[2,10],采用DBI 評(píng)價(jià)其聚類質(zhì)量,計(jì)算公式如下:
式中:d(Xk)與d(Xj)分別表示類簇k,j 中的每個(gè)樣本到類簇中心的平均距離;d(ck,cj)表示類簇k,j 的類簇中心之間的距離。IDBI的數(shù)值越小,表示聚類結(jié)果的質(zhì)量越好。
當(dāng)k 取不同值時(shí)IDBI如圖3 所示,可以看出,當(dāng)k 取3 時(shí),IDBI最小為1.59,此時(shí)聚類效果最佳。使用集成聚類處理相同數(shù)據(jù)集,聚類結(jié)果如表1 所示,經(jīng)對(duì)比可以看出,集成聚類算法可以自動(dòng)得到最佳聚類數(shù),且IDBI為1.42,比K-means的聚類效果更好。因此,采用集成聚類算法不僅可以自動(dòng)得到最佳聚類數(shù),同時(shí)由于避免了初始聚類中心的隨機(jī)選擇,還能得到更好的聚類效果。
圖3 K-means 不同聚類數(shù)的IDBI
表1 聚類結(jié)果
選取3 個(gè)不同天氣典型日,分別采用3 種方法進(jìn)行預(yù)測(cè):方法1,集成聚類與GBDT 相結(jié)合;方法2,K-means 與XGBoost 相結(jié)合;方法3,集成聚類與XGBoost 相結(jié)合。
為了確保參數(shù)設(shè)置最優(yōu),本文使用Gridsearch網(wǎng)格搜索法對(duì)2 種算法的主要參數(shù)尋優(yōu)進(jìn)行。XGBoost 模型參數(shù):learning_rate(學(xué)習(xí)率)設(shè)置為0.1,max_depth(樹(shù)的深度)設(shè)置為4,n_estimators(樹(shù)的棵樹(shù))設(shè)置為45,min_child_weight(最小葉子權(quán)重)設(shè)置為4,其余參數(shù)設(shè)置為默認(rèn)值;GBDT 模型參數(shù):n_estimator(最大迭代次數(shù))設(shè)置為52,learning_rate(學(xué)習(xí)率)設(shè)置為0.3,loss(損失函數(shù))設(shè)置為“huber”,其余參數(shù)設(shè)置為默認(rèn)值。
為了評(píng)價(jià)不同方案的預(yù)測(cè)效果,本文采用MAPE(平均絕對(duì)誤差)和RMSE(均方根誤差)分別評(píng)價(jià)預(yù)測(cè)結(jié)果,2 種評(píng)價(jià)指標(biāo)的數(shù)值越小,表示預(yù)測(cè)結(jié)果越接近真實(shí)值。
式中:n 為預(yù)測(cè)值數(shù)量;yi和分別為負(fù)荷真實(shí)值和預(yù)測(cè)值。
3 種方法的預(yù)測(cè)結(jié)果如表2 所示。
表2 3 種方法預(yù)測(cè)結(jié)果
1)晴天預(yù)測(cè)結(jié)果。
由圖4 中光伏功率曲線可以看出:晴天光伏發(fā)電功率比較穩(wěn)定,使用3 種方法都可以得到較好的預(yù)測(cè)結(jié)果,同時(shí)結(jié)合表2 中的MAPE 值可知,集成聚類與XGBoost 組合算法的預(yù)測(cè)結(jié)果誤差最小。
圖4 晴天預(yù)測(cè)結(jié)果
2)多云天預(yù)測(cè)結(jié)果。
由圖5 中預(yù)測(cè)曲線可以看出:多云天氣的光伏發(fā)電功率波動(dòng)較大,方法1 的預(yù)測(cè)結(jié)果與實(shí)際波動(dòng)曲線相差較大,在13:00—15:00 的預(yù)測(cè)值偏差非常明顯;但方法2 和方法3 的預(yù)測(cè)結(jié)果相對(duì)準(zhǔn)確,更加接近真實(shí)值,結(jié)合表2 中的MAPE 值可以看出,方法3 的預(yù)測(cè)結(jié)果最準(zhǔn)確。
圖5 多云天預(yù)測(cè)結(jié)果
3)陰雨天預(yù)測(cè)結(jié)果。
由圖6 中預(yù)測(cè)曲線可以看出:3 種類型天氣中,陰雨天的光伏發(fā)電功率最小,且波動(dòng)最為明顯,這導(dǎo)致方法1 的預(yù)測(cè)結(jié)果與真實(shí)曲線差距較大,特別是12:00—16:00 的預(yù)測(cè)值偏離真實(shí)值最多,與真實(shí)曲線不符;方法2 預(yù)測(cè)功率值與真實(shí)曲線相差較??;方法3 的波動(dòng)情況比方法2 更加接近真實(shí)曲線,結(jié)合表2 的MAPE 值可以看出,本文提出的集成聚類與XGBoost 組合的算法更加適應(yīng)功率的波動(dòng),預(yù)測(cè)結(jié)果更準(zhǔn)確。
圖6 陰雨天預(yù)測(cè)結(jié)果
對(duì)比不同天氣狀況下的預(yù)測(cè)結(jié)果發(fā)現(xiàn),GBDT算法雖然在晴天的預(yù)測(cè)結(jié)果較好,但是無(wú)法應(yīng)對(duì)較為波動(dòng)的天氣情況,當(dāng)天氣情況發(fā)生波動(dòng)時(shí),預(yù)測(cè)結(jié)果誤差會(huì)迅速加大,無(wú)法像XGBoost 算法一樣適應(yīng)天氣波動(dòng)。經(jīng)過(guò)集成的K-means 聚類算法比原始K-means 聚類算法的聚類結(jié)果更穩(wěn)定,聚類質(zhì)量更高,并且可以自動(dòng)得到最佳聚類數(shù),還能通過(guò)提供更準(zhǔn)確的聚類樣本提高XGBoost 算法的預(yù)測(cè)精度。
通過(guò)實(shí)例分析可以證明,本文所提的預(yù)測(cè)方法具有以下優(yōu)勢(shì):
1)結(jié)合了Mean-shift 算法、凝聚層次算法和K-means 聚類算法的集成聚類算法解決了Kmeans 聚類算法無(wú)法確定最佳聚類數(shù)和隨機(jī)選定初始聚類中心的問(wèn)題,使得聚類結(jié)果更加穩(wěn)定,且準(zhǔn)確實(shí)現(xiàn)了對(duì)氣象特征的聚類。
2)采用XGBoost 集成機(jī)器學(xué)習(xí)算法,在減少參數(shù)設(shè)定的同時(shí),相比于GBDT 算法可以得到更加準(zhǔn)確的預(yù)測(cè)結(jié)果;對(duì)于短期光伏發(fā)電功率預(yù)測(cè),XGBoost 算法可以更好地適應(yīng)不同天氣情況帶來(lái)的影響。
本文所建立的預(yù)測(cè)模型在不同天氣情況下均獲得了較好的預(yù)測(cè)結(jié)果,實(shí)用性較強(qiáng),在短期光伏發(fā)電功率預(yù)測(cè)研究方面具有一定的參考價(jià)值。