國電電力新疆新能源開發(fā)有限公司 徐榮鵬 馮文新 李 偉 蔣凌子
北方大賢風(fēng)電科技(北京)有限公司 付 杰 常 謙
由于風(fēng)電具有很強(qiáng)的地域性與隨機(jī)性,導(dǎo)致風(fēng)電輸出不穩(wěn)定,影響電力調(diào)度,風(fēng)電功率預(yù)測的主要目的在于電力市場競價和風(fēng)電場運(yùn)行維護(hù),如何提高預(yù)測準(zhǔn)確率具有重大的研究意義。
風(fēng)電預(yù)測可分為中長期、短期、超短期三種時間類型的預(yù)測,短期預(yù)測是當(dāng)前研究的熱點(diǎn)問題;目前國內(nèi)外針對短期預(yù)測的技術(shù)手段主要有支持向量機(jī)、隨機(jī)森林、BP神經(jīng)網(wǎng)絡(luò)等方法,張啟龍等人提出對BP神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)和網(wǎng)絡(luò)權(quán)值采用遺傳算法進(jìn)行優(yōu)化,并將其應(yīng)用于風(fēng)電場功率預(yù)測;宣暢等人采用鯨魚優(yōu)化算法與多元宇宙優(yōu)化算法結(jié)合內(nèi)核極限學(xué)習(xí)機(jī),構(gòu)建預(yù)測模型進(jìn)行風(fēng)點(diǎn)功率預(yù)測;康文豪等人針對風(fēng)電數(shù)據(jù)特征選擇問題,提出在使用kendall rank相關(guān)系數(shù)、灰色關(guān)聯(lián)度和隨機(jī)森林特征重要性三種方法選擇有效特征的基礎(chǔ)上,采用改進(jìn)深度森林模型進(jìn)行短期風(fēng)電功率預(yù)測,進(jìn)一步提高預(yù)測的準(zhǔn)確性和擬合效果;王小娟等人提出采用布谷鳥搜索算法優(yōu)化支持向量回歸機(jī),進(jìn)而得到CS-SVR模型實(shí)現(xiàn)短期風(fēng)電功率預(yù)測。
遺傳算法是模擬自然進(jìn)化過程搜索最優(yōu)解的一種方法,主要包括選擇、交叉、變異三種算子:
定義初始種群大小為p、個體維度為D、終止條件為種群最大迭代次數(shù)為Iter,則算法個體以及初始種群定義如下:其中,Xti為第t次迭代種群中的第i個體,初始情況下t=0,i=1,2,…,p;rand()為[0,1]間的隨機(jī)數(shù)(服從均勻分布);XUi,d、XLi,d分別為個體在第d個維度上的上下界,d為當(dāng)前個體維度,d=1,2,…,D。
適應(yīng)度函數(shù)。定義適應(yīng)度函數(shù)F=f(xi)。
選擇操作。目的在于直接將較優(yōu)個體傳遞給下一代或通過配對交叉產(chǎn)生新的個體傳遞給下一代,一般常用的選擇方式為輪盤賭法,適應(yīng)度越好的染色體被選中的概率越高,當(dāng)前染色體(即種群個體)被選擇概率公式為:其中,f(xi)為當(dāng)前染色體i的適應(yīng)度,為所有染色體的適應(yīng)度之和。
交叉操作。根據(jù)選擇操作獲取到父母染色體,隨機(jī)選擇交叉位置,定義交叉概率Pc(0<Pc≤1),進(jìn)行指定位置交叉操作;變異操作。變異是根據(jù)閾值模擬改變個體上的某些基因座上的基因值,定義變異閾值為0.5,變異后產(chǎn)生的新個體為:
其中,Xti,d為第t次迭代時第i個染色體的d維度的值,xtmin、xtmax分別為染色體d維度上的基因的上下界。
梯度提升決策樹是基于Boosting的一種集成方法,其算法思想為采用損失函數(shù)的負(fù)梯度作為當(dāng)前迭代時刻的損失近似值,通過在當(dāng)前迭代時刻對前一迭代時刻的弱學(xué)習(xí)器的損失進(jìn)行擬合,進(jìn)而不斷更新訓(xùn)練集的權(quán)重,最終將弱學(xué)習(xí)器組合為一個強(qiáng)學(xué)習(xí)器,減小樣本損失。GBDT算法過程[1]如下:
定義輸入的樣本數(shù)據(jù)D:D={(x1,y1),(x2,y2),…,(xi,yi),…,(xN,yN)}、x={x1,x2,…,xi,…,xN}、y={y1,y2,…,yi,…,yN},其中,i=1,2,…,N為樣本個數(shù);初始化學(xué)習(xí)器:其中c為使損失函數(shù)極小化的常數(shù)。
定義損失函數(shù)L(y,f(x)),構(gòu)建M棵樹:計(jì)算當(dāng)前樹m對所有樣本數(shù)據(jù)i(i=1,2,…,N)的損失函數(shù)的負(fù)梯度值:-gm(xi)=-[?Ly,f(xi)/?f(xi)]f(x)=fm-1(x),其中m為當(dāng)前樹個數(shù)、m=1,2,…,M;以負(fù)梯度作為預(yù)測值,即將(xi,-gm(xi))(i=1,2,…,N)為訓(xùn)練數(shù)據(jù),訓(xùn)練一個回歸樹Tm(x,);更新樹模型:fm(x)=fm-1(x)+ρTm(x,),其中ρ為學(xué)習(xí)率。
經(jīng)過M次迭代之后得到最終的樹模型為:fM(x)=
由于在實(shí)際的風(fēng)電場運(yùn)行場景中會出現(xiàn)幾種導(dǎo)致實(shí)際發(fā)電功率不準(zhǔn)確情況,如不定時的風(fēng)機(jī)進(jìn)行檢修、限電等,即人工干預(yù)的原因?qū)е碌臄?shù)據(jù)臟亂問題,且風(fēng)電數(shù)據(jù)量過大、無法靠人工分析清洗數(shù)據(jù);此外,考慮到實(shí)際風(fēng)電功率也可能會具有一些時間特性,在相似的時間段可能會具有相似的特性,大量的數(shù)據(jù)在構(gòu)建模型過程中可能會導(dǎo)致由于數(shù)據(jù)的異質(zhì)性給預(yù)測結(jié)果帶來反面影響。
針對以上問題,在進(jìn)行預(yù)測前對初始數(shù)據(jù)進(jìn)行了聚類處理;首先將原始的特征數(shù)據(jù)的訓(xùn)練集進(jìn)行KMeans聚類;然后利用訓(xùn)練集及其聚類結(jié)果訓(xùn)練KMeans聚類模型,利用聚類模型對待預(yù)測的數(shù)據(jù)集進(jìn)行分類;最后按照聚類個數(shù)k將訓(xùn)練集與測試集劃分成k組,并對k組數(shù)據(jù)分別利用風(fēng)電功率預(yù)測算法進(jìn)行模型訓(xùn)練并預(yù)測。本聚類操作的本質(zhì)在于利用相似數(shù)據(jù)的相似信息,使得預(yù)測效果更好。
針對機(jī)器學(xué)習(xí)算法的參數(shù)調(diào)節(jié)目前還沒有比較完美的調(diào)優(yōu)方法論,由于GBDT算法模型的模型參數(shù)較SVM等算法相比較多,手動調(diào)參具有不確定性且十分消耗時間,而參數(shù)是影響訓(xùn)練精度和時間的重要因素,故本文采用遺傳算法在全局搜索與局部尋優(yōu)方面的良好優(yōu)勢對GBDT的boosting框架參數(shù)以及弱學(xué)習(xí)器參數(shù)進(jìn)行優(yōu)化,GBDT參數(shù)包括弱學(xué)習(xí)器的最大個數(shù)、學(xué)習(xí)率、劃分時考慮的特征數(shù)量、樹的深度、葉子節(jié)點(diǎn)最少的樣本數(shù)等。
本文針對GBDT模型主要參數(shù)進(jìn)行優(yōu)化,包括決策樹的深度、采樣比例及最大弱學(xué)習(xí)器個數(shù)與學(xué)習(xí)率;其中,樹的深度過大可能導(dǎo)致過擬合,過小可能會導(dǎo)致模型過于簡單,而采樣比例決定了選取多少比例的數(shù)據(jù)集取值范圍為[0,1],可有效防止過擬合,但也會增加樣本擬合偏差,弱學(xué)習(xí)器的個數(shù)可以和學(xué)習(xí)率一起考慮,兩者之間需要權(quán)衡;弱學(xué)習(xí)器個數(shù)太小或太大容易欠擬合或過擬合。將優(yōu)化后得到參數(shù)組用于GBDT的訓(xùn)練,獲取最終的GBDT網(wǎng)絡(luò)結(jié)構(gòu),構(gòu)建新的預(yù)測模型GA-GBDT。GA-GBDT算法步驟如下:
種群個體初始化。采用實(shí)值編碼方式,將GBDT算法的樹的深度、采樣比例、弱學(xué)習(xí)器的最大個數(shù)、學(xué)習(xí)率根據(jù)公式(1)按照實(shí)值編碼方式作為GA算法的初始種群,定義種群大小為p,個體維度D為待優(yōu)化參數(shù)的個數(shù),終止條件為種群最大迭代次數(shù)為Iter;適應(yīng)度函數(shù)。選擇使GA算法適應(yīng)度函數(shù)最小的參數(shù)組,定義適應(yīng)度函數(shù)為模型預(yù)測數(shù)值結(jié)果的絕對誤差:其中:yi與y'i分別為第i個測試樣本的功率實(shí)際值與預(yù)測值,n為預(yù)測樣本數(shù)。
選擇操作。根據(jù)公式(2)采用輪盤賭方式進(jìn)行個體選擇,適應(yīng)度函數(shù)越好,被選擇的可能性越大;交叉操作。針對選擇操作獲得的個體進(jìn)行部分基因交叉互換,產(chǎn)生新個體,計(jì)算適應(yīng)度函數(shù),根據(jù)優(yōu)勝劣汰原則進(jìn)行個體的保留;變異操作。根據(jù)公式(3)對當(dāng)前種群個體進(jìn)行變異操作,獲得新個體,計(jì)算適應(yīng)度函數(shù),擇優(yōu)選擇是否保留變異個體。
終止條件。判斷是否達(dá)到最大種群迭代次數(shù),若滿足、算法結(jié)束,輸出最優(yōu)GBDT參數(shù)組,否則返回適應(yīng)度函數(shù)步驟繼續(xù)依次執(zhí)行直至滿足終止條件。基于以上邏輯步驟,最終構(gòu)建基于KMeans聚類的遺傳算法優(yōu)化梯度提升樹的功率預(yù)測模型,簡稱KGA-GBDT(圖1)。
圖1 KGA-GBDT模型的流程圖
利用國電電力新疆某風(fēng)電場在2019年9月至2020年6月的歷史氣象數(shù)據(jù)進(jìn)行風(fēng)電功率預(yù)測建模,根據(jù)氣象數(shù)據(jù)所對應(yīng)的實(shí)測功率數(shù)據(jù)訓(xùn)練并驗(yàn)證預(yù)測模型;數(shù)據(jù)采樣時間間隔為15min,輸入數(shù)據(jù)特征包括風(fēng)速、風(fēng)向、溫度、壓力等,輸出結(jié)果為預(yù)測發(fā)電功率(圖2)。
圖2 風(fēng)電功率部分樣本序列圖
為進(jìn)一步證明基于KMeans聚類的GA-GBDT模型(KGA-GBDT)在預(yù)測問題上的有效性,采用GA-GBDT、GA-SVM、BP等3種風(fēng)電功率常用預(yù)測模型進(jìn)行對比實(shí)驗(yàn);其中在KGA-GBDT、GAGBDT、GA-SVM模型中,GA種群個體數(shù)目設(shè)置為p=30,個體維度為優(yōu)化參數(shù)個數(shù),依次為D=4、D=4、D=2,終止條件Iter=80;BP算法的相關(guān)參數(shù)采用python的sklearn包默認(rèn)設(shè)置;考慮到數(shù)據(jù)可能會具有時間特性,故隨機(jī)抽取5個月數(shù)據(jù),每個月隨機(jī)抽取7天共35天的數(shù)據(jù)作為測試集,其余作為訓(xùn)練集;模型評價指標(biāo)采用絕對誤差、均方誤差,其計(jì)算公式如下:其中yi與y'i分別為第i個測試樣本的功率實(shí)際值與預(yù)測值,n為預(yù)測樣本數(shù)。
將KGA-GBDT預(yù)測數(shù)值結(jié)果的相對誤差與BP基本模型進(jìn)行對比分析,根據(jù)圖3、圖4的預(yù)測結(jié)果及誤差圖上的3個模型的曲線趨勢可知:KGAGBDT模型的預(yù)測結(jié)果離群點(diǎn)少,相對誤差范圍小,整體的預(yù)測結(jié)果更貼近真實(shí)功率的數(shù)值結(jié)果;對比GA-GBDT與GA-SVM,GA-SVM的預(yù)測誤差更小一點(diǎn),說明SVM預(yù)測效果比GBDT更好;根據(jù)圖上的KGA-GBDT與GA-GBDT曲線對比,可以發(fā)現(xiàn)KGA-GBDT的預(yù)測結(jié)果優(yōu)于GAGBDT,故可以證明KMeans聚類操作的有效性。
圖3 各算法的部分功率預(yù)測結(jié)果圖
圖4 各算法的功率預(yù)測結(jié)果相對誤差圖
測試數(shù)據(jù)在MSE、MAE算法下得到的模型結(jié)果誤差評價指標(biāo)結(jié)果分別為:BP398.55/15.99、GA-SVM467.76/16.59、GA-GBDT434.61/15.55、KGA-GBDT363.85/10.08。據(jù)此可以得出結(jié)論:KGA-GBDT模型的預(yù)測能力高于其余3個對比模型。KGA-GBDT預(yù)測模型得到的均方誤差、絕對誤差數(shù)值結(jié)果均為最小;其中,與BP基本預(yù)測模型對比,KGA-GBDT預(yù)測模型的MSE、MAE平均分別降低了32.80、5.91,相比于基于GA參數(shù)優(yōu)化的GBDT與SVM預(yù)測模型,MSE、MAE 平均分別降低了大約87、6,說明KGA-GBDT預(yù)測模型的功率預(yù)測命中率最高。
測試數(shù)值顯示,GA-GBDT模型預(yù)測結(jié)果的MAE比BP的低,但MSE高于BP,結(jié)合圖3的第300多樣本位置為例,此時的GA-GBDT預(yù)測出結(jié)果偏差過大,說明GA-GBDT模型預(yù)測結(jié)果穩(wěn)定性不強(qiáng);此外在利用GA算法對GBDT、SVM算法進(jìn)行參數(shù)優(yōu)化時,實(shí)驗(yàn)記錄了在相同的GA參數(shù)條件下的算法的計(jì)算時間,SVM算法在參數(shù)優(yōu)化過程中消耗時間是GBDT的5倍多,故GA-GBDT模型在時間效率角度來講占據(jù)優(yōu)勢;說明基于KMeans聚類的GA-GBDT算法能明顯提升模型性能。
綜上,預(yù)測模型的兩項(xiàng)誤差指標(biāo)均小于GAGBDT、GA-SVM、BP預(yù)測模型的,說明本預(yù)測模型在風(fēng)電功率預(yù)測方面的預(yù)測性能較好;KGAGBDT預(yù)測模型與GA-GBDT預(yù)測模型對比,其中MSE、RMSE分別降低了70.76、5.47,這說明KMeans聚類操作有效降低了數(shù)據(jù)異質(zhì)性的影響,能明顯提升模型性能。