陳代俊,陳里里,李陽濤
(重慶交通大學(xué)機(jī)電與車輛工程學(xué)院,重慶市 南岸區(qū) 400074)
聯(lián)合循環(huán)發(fā)電是一種將燃?xì)廨啓C(jī)、蒸汽渦輪機(jī)和熱回收蒸汽發(fā)生器組合起來的發(fā)電方式,其具有熱效率高、污染低、自動(dòng)化程度高等特點(diǎn),聯(lián)合循環(huán)發(fā)電站已在我國多個(gè)地區(qū)建成并投入使用[1-4]。為了提高發(fā)電效率,保證電力系統(tǒng)能夠安全可靠地運(yùn)行,研究如何有效利用相關(guān)影響因素來預(yù)測(cè)發(fā)電站滿負(fù)荷電力輸出具有十分重要的意義。
目前,有大量的學(xué)者采用機(jī)器學(xué)習(xí)的方法對(duì)發(fā)電站的電力輸出進(jìn)行建模預(yù)測(cè),但存在未充分挖掘特征信息或模型簡單導(dǎo)致的精度不高等問題。文獻(xiàn)[5]采用主成分分析(principle component analysis,KPCA)方法降低氣象因素維度,提取互不相關(guān)的綜合性評(píng)價(jià)指標(biāo),通過主成分分析法提取的特征建立多元線性回歸模型。文獻(xiàn)[6]采用線性回歸算法分析了各特征之間的相關(guān)性以及特征與發(fā)電量之間的相關(guān)性。文獻(xiàn)[7]采用模糊C均值聚類算法生成新的樣本,并構(gòu)建支持向量機(jī)模型對(duì)發(fā)電量進(jìn)行預(yù)測(cè)。文獻(xiàn)[8]利用與日發(fā)電量具有高相似度的歷史數(shù)據(jù)構(gòu)建支持向量機(jī)模型對(duì)發(fā)電量進(jìn)行預(yù)測(cè)。文獻(xiàn)[9]提出了基于深度信念網(wǎng)絡(luò)的短期發(fā)電量預(yù)測(cè)方法,并對(duì)真實(shí)的相關(guān)特征及歷史發(fā)電量進(jìn)行了預(yù)測(cè)算例分析。文獻(xiàn)[10]基于改進(jìn)神經(jīng)網(wǎng)絡(luò)和能量守恒法的計(jì)算方法,利用遺傳算法優(yōu)化相關(guān)參數(shù),構(gòu)建了發(fā)電量預(yù)測(cè)模型。文獻(xiàn)[11]采用K均值聚類算法對(duì)歷史數(shù)據(jù)進(jìn)行聚類,并以逆向傳播(back propagation,BP)神經(jīng)網(wǎng)絡(luò)為基礎(chǔ),引入小波分析構(gòu)建小波神經(jīng)網(wǎng)絡(luò),同時(shí)利用遺傳算法對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行尋優(yōu),并以此構(gòu)建了光伏電站發(fā)電量預(yù)測(cè)模型。文獻(xiàn)[12]采用多個(gè)神經(jīng)網(wǎng)絡(luò)提取特征并進(jìn)行特征融合以實(shí)現(xiàn)超短期風(fēng)電功率預(yù)測(cè)。
本文針對(duì)上述方法未充分挖掘環(huán)境溫度、環(huán)境壓力和環(huán)境相對(duì)濕度等對(duì)電力輸出的影響以及電力輸出預(yù)測(cè)誤差大等問題,采用核主成分分析算法(kernel principle component analysis,KPCA)與極端梯度提升(extreme gradient boosting,XGBoost)算法特征重要性評(píng)分,充分分析各相關(guān)特征對(duì)電力輸出的單一和交叉影響,以XGBoost算法作為回歸模型對(duì)電力輸出進(jìn)行預(yù)測(cè)。通過某聯(lián)合循環(huán)發(fā)電站收集的實(shí)際數(shù)據(jù)進(jìn)行實(shí)驗(yàn),并與其他方法進(jìn)行對(duì)比,驗(yàn)證了本文所提方法的有效性。
KPCA算法主要是在主成分分析算法的基礎(chǔ)上加入核函數(shù),能夠從數(shù)據(jù)集中挖掘出隱含的非線性特征間的非線性信息[13]。KPCA算法是采用核函數(shù)的方法將數(shù)據(jù)映射到高維特征空間中[14-15],從而有效地提取到低維空間中幾乎無法表達(dá)的非線性特征。
設(shè)n個(gè)m維數(shù)據(jù)樣本,建立數(shù)據(jù)樣本矩陣X’n×m,歸一化后得到樣本矩陣Xn×m。使用函數(shù)φ將樣本映射至高維特征空間RF,映射值為?(x1),?(x2),…,?(xn),并使用PCA算法得到協(xié)方差矩陣為
其特征方程為
式中:λ為協(xié)方差矩陣的特征值;v為特征向量。
由式(1)、(2)可得
式中αi=通常映射φ并不是顯式的,對(duì)于v的計(jì)算比較困難,因此引入核函數(shù):
對(duì)于式(2),任意的k=1,2,…,n,則有
分別將式(1)、(3)與式(4)代入式(5)可得
式中:K為k對(duì)應(yīng)的核矩陣,K=k(xi,xj);α=(α1,α2,…,αn)。通過式(6)求得特征值λ1≥λ2≥…λn及其對(duì)應(yīng)特征向量α1,α2,…,αn。新樣本φ(xj)映射后得第j(j=1,2,…,p)維坐標(biāo)為
式中αi已經(jīng)規(guī)范化,αji是αi的第j個(gè)分量,規(guī)范化滿足:
具有核函數(shù)的KPCA算法能夠充分挖掘出原始數(shù)據(jù)中的交叉信息[16-17]。由于線性核函數(shù)只能解決線性可分問題,多項(xiàng)式核不適用于大數(shù)量級(jí)的情況且有較多的參數(shù)需要選擇,而徑向基函數(shù)核(radial basis function,RBF)能有效解決這些問題[18-19],因此本文選擇RBF作為KPCA的核函數(shù)。
RBF在計(jì)算過程中涉及到2個(gè)向量的歐式距離計(jì)算[17],本文采用的高斯核函數(shù)公式為
式中σ為可調(diào)參數(shù),其作用是控制函數(shù)的作用范圍。
通過將不同個(gè)數(shù)的特征輸入KPCA,從而挖掘出多個(gè)組合特征。這些組合特征中,包含了絕大多數(shù)原始特征的有用信息,且去除了一部分噪聲信息。從這些組合特征中選取出對(duì)預(yù)測(cè)標(biāo)簽具有較大影響因子的特征,能有效提高模型預(yù)測(cè)效果。
XGBoost算法是梯度提升樹(gradient boosting decision tree,GBDT)的一種改進(jìn)模型,其基學(xué)習(xí)器可以選擇線性分類以及非線性的樹模型。XGBoost在GBDT的目標(biāo)函數(shù)上加上正則項(xiàng),減少了過擬合的可能性且加快了收斂速度[20]。目標(biāo)函數(shù)如下:
式中:yi表示真實(shí)值;表示預(yù)測(cè)值;L(yi,)表示損失函數(shù);Ω(f)表示正則項(xiàng);γ代表樹進(jìn)行分割的困難系數(shù),用于控制樹的生成;T表示每一個(gè)葉子節(jié)點(diǎn)的個(gè)數(shù);l表示L2正則化項(xiàng)的系數(shù)。
XGBoost的損失函數(shù)可以根據(jù)泰勒公式二階導(dǎo)數(shù)來對(duì)其進(jìn)行展開,這樣其目標(biāo)函數(shù)就會(huì)擁有一個(gè)更快的收斂速度和更高的準(zhǔn)確性[21]。此時(shí)目標(biāo)函數(shù)為
式中:Ij?{q(Xi)=j};hi表示損失函數(shù)的二階導(dǎo)數(shù);gi表示損失函數(shù)的一階導(dǎo)數(shù)。XGBoost算法可以通過以下3種方式判斷所有特征的重要性[22]:
1)基于權(quán)重的特征重要性,即在所有樹中每一個(gè)特征被用來分裂數(shù)據(jù)的次數(shù)。
2)基于覆蓋的特征重要性,即在所有樹中每一個(gè)特征被用來分裂數(shù)據(jù)的次數(shù),且統(tǒng)計(jì)有多少樣本點(diǎn)通過這個(gè)分裂點(diǎn)。
3)基于增益的特征重要性,即計(jì)算每一個(gè)特征分裂時(shí)平均損失的減少量。
本文基于增益的XGBoost特征重要性與前向選擇法提出了XGB-FS特征選擇算法。該算法基于XGBoost特征選擇重要性評(píng)分對(duì)所有特征進(jìn)行排序,采用前向選擇法依次將特征輸入模型,采用訓(xùn)練集的平均絕對(duì)誤差(mean absolute erro,MAE)作為評(píng)價(jià)指標(biāo),找到MAE值最小的最優(yōu)特征子集。
本文提出的基于KPCA-XGB-FS的聯(lián)合發(fā)電站電力輸出預(yù)測(cè)方法流程如下:首先,對(duì)原始樣本的4個(gè)特征遍歷2個(gè)、3個(gè)和4個(gè)依次組合,通過KPCA算法對(duì)各組合的特征進(jìn)行非線性信息提取,共生成了11個(gè)特征;其次,對(duì)所有的特征進(jìn)行對(duì)數(shù)變換,使其更加滿足高斯分布;然后,基于XGB-FS特征選擇算法從原始的4個(gè)特征和生成的11個(gè)特征中選擇最優(yōu)特征子集;最后,直接將最優(yōu)特征子集輸入XGBoost模型進(jìn)行訓(xùn)練,構(gòu)建聯(lián)合循環(huán)發(fā)電站電力輸出預(yù)測(cè)模型。在實(shí)際的應(yīng)用場景中,輸入模型的環(huán)境相關(guān)特征可通過當(dāng)?shù)貧庀缶痔崆矮@取,從而對(duì)未來的電力輸出進(jìn)行預(yù)測(cè)。
本文實(shí)現(xiàn)電力輸出預(yù)測(cè)的方法是基于機(jī)器學(xué)習(xí)中的回歸算法。使用對(duì)燃?xì)廨啓C(jī)和蒸汽渦輪機(jī)負(fù)載造成影響的相關(guān)特征進(jìn)行一系列的特征信息提取,然后通過提取的新特征建立電力輸出預(yù)測(cè)模型。具體方法的流程如圖1所示。
圖1 方法流程圖Fig.1 Flow chart of method
本文使用來自公開數(shù)據(jù)集網(wǎng)站UCI中的聯(lián)合循環(huán)發(fā)電站數(shù)據(jù)集來驗(yàn)證所提方法的有效性。該循環(huán)發(fā)電站由2個(gè)燃?xì)廨啓C(jī)、1個(gè)蒸汽渦輪機(jī)和2個(gè)雙壓熱回收蒸汽發(fā)生器組成。燃?xì)廨啓C(jī)能夠產(chǎn)生電力并用它的廢氣余熱產(chǎn)生蒸汽,再通過蒸汽渦輪機(jī)產(chǎn)生額外的電力。實(shí)驗(yàn)數(shù)據(jù)集由某聯(lián)合循環(huán)發(fā)電站在674 d滿載工作狀態(tài)下采集的9 568個(gè)數(shù)據(jù)樣本,輸入特征是每小時(shí)從傳感器接收的數(shù)據(jù)平均值,包括每小時(shí)平均環(huán)境溫度(ambient temperature,AT)、平均大氣壓強(qiáng)(atmospheric pressure,AP)、平均相對(duì)濕度(relative humidity,RH)和平均廢氣氣壓(V),預(yù)測(cè)目標(biāo)為燃?xì)廨啓C(jī)和蒸汽渦輪機(jī)每小時(shí)凈電力輸出(electrical energy output,EP)。燃?xì)廨啓C(jī)負(fù)載對(duì)AT、AP和RH敏感,蒸汽渦輪機(jī)負(fù)載對(duì)V敏感。各特征和EP的平均值、方差、最小值和最大值如表1所示,AT、V、AP、RH均為連續(xù)型數(shù)值變量。隨機(jī)選取原始樣本數(shù)量的70%(6 697例)作為訓(xùn)練集用以訓(xùn)練KPCAXGB-FS模型,剩余的30%(2 871例)樣本作為測(cè)試集用以評(píng)價(jià)模型預(yù)測(cè)效果。
表1 各特征統(tǒng)計(jì)值Tab.1 Statistical values of each characteristic
為了衡量所建立模型對(duì)測(cè)試集的預(yù)測(cè)效果,本文使用平均絕對(duì)誤差(mean absolute error,MAE)、平均相對(duì)誤差(mean relative error,MRE)、均方根誤差(root mean squared error,RMSE)和平均絕對(duì)百分比誤差(mean absolute percentage error,MAPE) 4個(gè)評(píng)價(jià)指標(biāo)計(jì)算模型預(yù)測(cè)值與真實(shí)值的誤差,從而對(duì)模型預(yù)測(cè)效果進(jìn)行評(píng)估。4個(gè)評(píng)價(jià)指標(biāo)分別表示如下:
式中:?i為模型預(yù)測(cè)值;yi為實(shí)際值;m為樣本數(shù)。
對(duì)原始數(shù)據(jù)中的AT、V、AP、RH特征進(jìn)行不同的組合,然后采用KPCA對(duì)各組合的特征進(jìn)行非線性降維,每一個(gè)組合生成一列新的特征。如圖2所示,從原始數(shù)據(jù)中使用11個(gè)不同特征的組合并基于KPCA提取11個(gè)融合了各特征信息的新特征。新特征融合了原有特征中重要的信息并且舍棄了原特征中的噪聲影響。
圖2 KPCA特征提取結(jié)果Fig.2 KPCA feature extraction results
將基于KPCA提取的11個(gè)新特征與原數(shù)據(jù)的4個(gè)特征通過XGBoost特征重要性評(píng)分得到每一個(gè)特征的重要性。如圖3所示,ATVAP、ATVRH、ATV 3個(gè)特征都表現(xiàn)出比原始特征更高的特征重要性評(píng)分。因此,本文提出的特征提取方法能有效提取出比原數(shù)據(jù)更為有效的特征?;贔S算法按照特征重要性評(píng)分的排序,從一個(gè)特征開始依次增加特征個(gè)數(shù),分別計(jì)算訓(xùn)練集不同特征個(gè)數(shù)下10倍交叉驗(yàn)證的MAE平均值。如圖4所示,當(dāng)特征個(gè)數(shù)為8時(shí),訓(xùn)練集10倍交叉驗(yàn)證下的MAE值為2.422 4。MAE值越小,代表預(yù)測(cè)值與真實(shí)值之間的誤差越小,因此,ATVAP、ATVRH、ATV、ATAP、VAP、AT、V、AP共8個(gè)特征為挑選的最優(yōu)特征子集。
圖3 特征重要性評(píng)分結(jié)果Fig.3 Feature importance score results
圖4 XGB-FS特征選擇結(jié)果Fig.4 XGB-FS feature selection results
為了闡明本文所提出的特征提取方法以及特征選擇方法的有效性,將本文的特征提取方法與未進(jìn)行特征提取的方法及文獻(xiàn)[23]進(jìn)行比較。未進(jìn)行特征提取的方法使用原始4個(gè)特征作為XGBoost的輸入進(jìn)行電力輸出預(yù)測(cè)。文獻(xiàn)[23]采用機(jī)器學(xué)習(xí)的Bagging方法并以MAE和RMSE作為評(píng)價(jià)指標(biāo)獲得了較優(yōu)的預(yù)測(cè)效果。
本文提出的方法與其余方法均采用MAE、RMSE、MAPE、ME 作為評(píng)價(jià)指標(biāo),各方法性能對(duì)比如表2所示,其中本文方法具有最低的誤差,MAE值為2.021,RMSE值為2.846,MAPE值為0.446%,ME值為-0.02。從表2各方法誤差結(jié)果來看,本文提出的基于KPCA算法的特征提取方法能夠有效提升模型預(yù)測(cè)效果,并且本文所提出的KPCA-XGB-FS方法較已有研究方法的MAE值和RMSE值分別降低了0.797和0.941。圖5為模型前100個(gè)樣本的預(yù)測(cè)值和真實(shí)值對(duì)比,通過圖5中真實(shí)值與模型預(yù)測(cè)值的對(duì)比及表2中的ME值得出本文所提出模型預(yù)測(cè)值整體性小于真實(shí)值。
表2 各方法性能Tab.2 Performance of each method
圖5 真實(shí)值與預(yù)測(cè)值對(duì)比Fig.5 Comparison of actual and predicted values
采用KPCA算法對(duì)電力預(yù)測(cè)相關(guān)數(shù)據(jù)進(jìn)行了非線性特征組合與提取,得到了更多的組合特征;采用XGB-FS特征選擇方法篩選最佳特征子集并建立XGBoost聯(lián)合循環(huán)發(fā)電站電力輸出預(yù)測(cè)模型。所提方法能夠充分挖掘發(fā)電相關(guān)數(shù)據(jù)中的線性與非線性信息,去除數(shù)據(jù)噪聲,獲得較好的預(yù)測(cè)效果。為這項(xiàng)研究提供數(shù)據(jù)集的聯(lián)合循環(huán)發(fā)電站已經(jīng)開始使用這種預(yù)測(cè)模型來預(yù)測(cè)第2天每小時(shí)的電力輸出,預(yù)測(cè)計(jì)算時(shí)該聯(lián)合循環(huán)發(fā)電站使用的是該州氣象研究所給出的第2天的溫度預(yù)報(bào)作為模型輸入。所提出的方法也可以使用發(fā)電站當(dāng)?shù)氐?天的溫度預(yù)報(bào)作為模型輸入進(jìn)行電力輸出預(yù)測(cè)。
在今后的工作中,將進(jìn)一步研究如何更加精確地獲取未來時(shí)間的環(huán)境變量以完善預(yù)測(cè)模型的輸入,并對(duì)不同發(fā)電站更多的數(shù)據(jù)進(jìn)一步研究。