劉洪波, 蓋雪揚(yáng), 孫黎, 馬成廉, 劉珅誠(chéng)
〔現(xiàn)代電力系統(tǒng)仿真控制與綠色電能新技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室(東北電力大學(xué)),吉林 吉林 132012〕
針對(duì)風(fēng)電功率研究者們提出了越來(lái)越多的數(shù)學(xué)模型去提高風(fēng)電功率的預(yù)測(cè)精度[1-4]。然而,因?yàn)閿?shù)據(jù)在采集、傳輸過(guò)程中可能存在問(wèn)題,或者因?yàn)橐恍┊惓J录陌l(fā)生導(dǎo)致目前的風(fēng)功率數(shù)據(jù)質(zhì)量相對(duì)較差,從而影響風(fēng)功率數(shù)據(jù)預(yù)測(cè)過(guò)程中的精度。在此背景下,采用合理的風(fēng)功率數(shù)據(jù)清洗方法就顯得尤為重要。文獻(xiàn)[5]先將數(shù)據(jù)進(jìn)行分段,通過(guò)用 Thompson tau-四分位法對(duì)數(shù)據(jù)進(jìn)行逐段的清洗,并采用四點(diǎn)插值的方法對(duì)數(shù)據(jù)進(jìn)行重構(gòu),該方法對(duì)臨近風(fēng)電場(chǎng)的數(shù)據(jù)異常清洗快速有效。文獻(xiàn)[6]提出了最優(yōu)組內(nèi)方差清洗算法對(duì)機(jī)組的異常狀態(tài)進(jìn)行檢測(cè),對(duì)風(fēng)電功率進(jìn)行清洗,該方法只針對(duì)風(fēng)速和風(fēng)功率兩個(gè)維度的數(shù)據(jù),降低了在數(shù)據(jù)異常清洗中對(duì)數(shù)據(jù)維度的要求。本文提出了基于孤立森林和局部離群因子算法(local outlier factor, LOF)的風(fēng)功率及其相關(guān)數(shù)據(jù)的清洗方法,有效地對(duì)數(shù)據(jù)中存在的異常進(jìn)行清洗,將處理后得到數(shù)據(jù)采用隨機(jī)森林的方法進(jìn)行風(fēng)功率的預(yù)測(cè)。采用了基于Shap值的歸因分析模型,具體分析了每個(gè)預(yù)測(cè)變量對(duì)風(fēng)功率預(yù)測(cè)精度的影響。
異常點(diǎn)是指在數(shù)據(jù)中與其他值存在明顯差異的點(diǎn)。導(dǎo)致風(fēng)功率及其相關(guān)數(shù)據(jù)出現(xiàn)異常點(diǎn)的原因有很多,例如異常天氣的出現(xiàn),檢測(cè)設(shè)備的異常等[7-8]。作為一種無(wú)監(jiān)督的異常檢測(cè)方法,孤立森林在處理時(shí)序數(shù)據(jù)的異常上具有速度快、識(shí)別準(zhǔn)確的特點(diǎn)。在數(shù)據(jù)異常檢測(cè)過(guò)程中,孤立森林更關(guān)注于在整體的樣本空間下,那些相對(duì)于數(shù)據(jù)密集的正常樣本來(lái)說(shuō)較為稀疏的離群點(diǎn)。
孤立森林的算法思想是在整個(gè)樣本數(shù)據(jù)空間中,隨機(jī)選擇一個(gè)維度進(jìn)行切割產(chǎn)生兩個(gè)子空間,設(shè)切割點(diǎn)為p。之后在當(dāng)前維度下將小于切割點(diǎn)p的值放入它的左子樹(shù)空間,將大于切割點(diǎn)p的值放入它的右子樹(shù)空間。之后對(duì)兩個(gè)子樹(shù)空間進(jìn)行切割遞歸,直至每個(gè)子樹(shù)空間只有一個(gè)數(shù)據(jù)點(diǎn)或者切割達(dá)到所設(shè)定的閾值。處理后會(huì)發(fā)現(xiàn),那些孤立的離群點(diǎn)會(huì)很快地被分離出去,而正常的數(shù)據(jù)點(diǎn)因?yàn)樗旧淼拿芗詴?huì)使其被分割多次才能分割完畢。
相較于孤立森林對(duì)整體樣本點(diǎn)中離群點(diǎn)的關(guān)注, LOF算法通過(guò)量化每個(gè)樣本點(diǎn)的異常程度更為關(guān)注在局部數(shù)據(jù)點(diǎn)中的異常。通過(guò)比較局部數(shù)據(jù)點(diǎn)中的相對(duì)距離和局部可達(dá)密度完成對(duì)數(shù)據(jù)異常點(diǎn)的檢測(cè)工作。
設(shè)數(shù)據(jù)集中的樣本集合為D,數(shù)據(jù)樣本點(diǎn)的個(gè)數(shù)為m,數(shù)據(jù)樣本點(diǎn)x的維度為n。即:
?Xi=(Xi1,Xi2,Xi3,…,Xin)∈Ri=1,2,3,…,m
(1)
dk(o)為點(diǎn)O的第k距離dk(O)=d(O,P)。設(shè)NK(O)為點(diǎn)O的第k距離鄰域??蛇_(dá)距離以O(shè)為圓心,點(diǎn)P到點(diǎn)O的第k可達(dá)距離dk(P,O)為:dk(P,O)=max{dk(O),d(P,O)}
局部可達(dá)密度ρk(P)為:
(2)
由式(2)可知,當(dāng)O點(diǎn)與周圍的相鄰數(shù)據(jù)點(diǎn)距離較遠(yuǎn)時(shí),會(huì)導(dǎo)致數(shù)據(jù)點(diǎn)之間的可達(dá)距離dk(P,O)增大,從而使可達(dá)距離之和增大,局部可達(dá)密度減小。
因此局部離群因子LOFk(P)為:
(3)
由式(3)可知,LOFk(P)計(jì)算的是在點(diǎn)P的鄰域距離內(nèi)其他數(shù)據(jù)點(diǎn)的局部可達(dá)密度與點(diǎn)P的局部可達(dá)密度的平均數(shù)。若比值接近1,說(shuō)明O點(diǎn)的局部可達(dá)密度與其相鄰點(diǎn)的局部可達(dá)密度接近,可以認(rèn)為兩個(gè)點(diǎn)屬于同一類型。
因?yàn)楸舅捎玫娘L(fēng)功率的數(shù)據(jù)維度為17維,過(guò)高的數(shù)據(jù)維度可能會(huì)導(dǎo)致在尋找離群點(diǎn)的過(guò)程中,更為突出地關(guān)注數(shù)據(jù)中更為分散的維度,所以本文將采用簡(jiǎn)單隨機(jī)采樣法抽取17維數(shù)據(jù)中的3維數(shù)據(jù),計(jì)算它們的LOF值,同時(shí)采取多次重復(fù)試驗(yàn)的方式,計(jì)算所產(chǎn)生的LOF值的均值,以此來(lái)削弱隨機(jī)性對(duì)數(shù)據(jù)所產(chǎn)生的不利影響。將異常點(diǎn)全部提取出來(lái)后,對(duì)異常點(diǎn)采取賦空操作,同時(shí)對(duì)缺失的數(shù)據(jù)按照不同的類型采用三次Hermite插值或鄰近缺失值插值的方式進(jìn)行重構(gòu),保證數(shù)據(jù)的完整性。圖1為風(fēng)功率及相關(guān)數(shù)據(jù)清洗的數(shù)據(jù)流程圖。
圖1 數(shù)據(jù)清洗流程圖
隨機(jī)森林算法本質(zhì)上是一種集成學(xué)習(xí)算法,隨機(jī)森林的基本單元是獨(dú)立的決策樹(shù)。在進(jìn)行監(jiān)督學(xué)習(xí)的過(guò)程中,可能會(huì)得到一些存在一定偏差的弱模型,而集成學(xué)習(xí)的思想就是組合多個(gè)弱模型,以此來(lái)得到一個(gè)具有更好抗干擾性的強(qiáng)監(jiān)督模型。隨機(jī)森林中一個(gè)重要的優(yōu)點(diǎn)就是不需要對(duì)它進(jìn)行交叉驗(yàn)證來(lái)得到對(duì)結(jié)果的無(wú)偏估計(jì),從而會(huì)使隨機(jī)森林模型具有較強(qiáng)的泛化能力。
Shap基于Shaply值,Shaply是在博弈論中的一個(gè)概念,是指累加貢獻(xiàn)的均值。Shap作為一種模型事后解釋的方法,它的核心思想是計(jì)算特征對(duì)模型輸出的邊際貢獻(xiàn)。Shap構(gòu)建了一個(gè)加性的解釋模型,它將每一個(gè)特征都視為對(duì)預(yù)測(cè)結(jié)果的“貢獻(xiàn)者”,并計(jì)算每一個(gè)特征樣本所貢獻(xiàn)的Shap 值。
假設(shè)數(shù)據(jù)集中的一個(gè)樣本為xi,y_base為數(shù)據(jù)集預(yù)測(cè)過(guò)程中的結(jié)果均值。F(xi)為第xi個(gè)樣本的預(yù)測(cè)值。樣本中共有k個(gè)特征值,則f(xi,k)為第k個(gè)特征值在此樣本中的歸因值。公式如下:
F(xi)=y_base+f(xi,1)+f(xi,2)+…+f(xi,k)
(4)
Shap值可以清晰地反映出每一個(gè)樣本中各個(gè)特征值對(duì)目標(biāo)變量的影響程度,通過(guò)Shap值的大小可以判斷出具體特征對(duì)該樣本的影響力大小。通過(guò)Shap值的正負(fù),可以了解具體特征對(duì)該樣本是正向影響還是負(fù)向影響。
本文將應(yīng)用Shap分析所提模型在進(jìn)行風(fēng)功率預(yù)測(cè)過(guò)程中每個(gè)特征變量對(duì)于預(yù)測(cè)結(jié)果所產(chǎn)生的影響。深入分析具體特征變量對(duì)預(yù)測(cè)過(guò)程全局產(chǎn)生的影響以及在單個(gè)樣本中具體特征變量對(duì)風(fēng)功率預(yù)測(cè)結(jié)果所產(chǎn)生的影響。本文將選取預(yù)測(cè)偏差較小時(shí)和預(yù)測(cè)偏差較大的風(fēng)功率數(shù)據(jù)點(diǎn)進(jìn)行分析,研究具體特征變量對(duì)預(yù)測(cè)結(jié)果的影響方式及影響力大小。圖2為基于Shap的歸因分析模型的整體架構(gòu)。
圖2 基于Shap的歸因分析模型的整體架構(gòu)
本文采用Kaggle上的公開(kāi)風(fēng)功率數(shù)據(jù)集,數(shù)據(jù)集中共有13 150條數(shù)據(jù),數(shù)據(jù)時(shí)間間隔15 min,含有包括風(fēng)速、槳葉角、電機(jī)扭矩和風(fēng)向等17維數(shù)據(jù)。所采用的數(shù)據(jù)處理及預(yù)測(cè)方法都在python3.8的環(huán)境下運(yùn)行。
首先對(duì)數(shù)據(jù)采用基于孤立森林的清洗方法在全局的角度下進(jìn)行數(shù)據(jù)異常點(diǎn)的識(shí)別。數(shù)據(jù)清洗的過(guò)程中,采用對(duì)每一維特征變量單獨(dú)進(jìn)行異常識(shí)別的清洗模式。其中,決策樹(shù)的個(gè)數(shù)n_estimators =150,孤立點(diǎn)的比例contamination=0.01。將數(shù)據(jù)異常點(diǎn)采用三次Hermite插值的方式進(jìn)行重構(gòu),對(duì)特別的數(shù)據(jù)項(xiàng)例如云層等級(jí)和葉片長(zhǎng)度等含有固定數(shù)值的數(shù)據(jù)采用鄰近點(diǎn)插值的方式進(jìn)行重構(gòu),保證數(shù)據(jù)的完整性。
其次利用LOF算法對(duì)17維變量采用簡(jiǎn)單隨機(jī)采樣法抽取三維變量進(jìn)行異常點(diǎn)識(shí)別。圖3為兩次抽取了不同特征變量的異常數(shù)據(jù)檢測(cè)結(jié)果,其中灰色點(diǎn)為正常數(shù)據(jù)點(diǎn),黑色點(diǎn)為識(shí)別出的異常點(diǎn)。采取10次異常檢測(cè)所產(chǎn)生的LOF值求平均值的方式來(lái)消除隨機(jī)性對(duì)異常檢測(cè)所帶來(lái)的消極影響。同時(shí)通過(guò)設(shè)定不同的k值,來(lái)調(diào)整各特征變量中異常點(diǎn)的選擇范圍,完成從整體到局部的風(fēng)功率及相關(guān)數(shù)據(jù)的清洗工作。
圖3 異常檢測(cè)結(jié)果
將清洗后的數(shù)據(jù)導(dǎo)入隨機(jī)森林模型當(dāng)中,采用的是2019年9月10日之前的13 134條數(shù)據(jù)進(jìn)行訓(xùn)練,對(duì)之后的16個(gè)數(shù)據(jù)點(diǎn)即未來(lái)4 h風(fēng)電功率數(shù)據(jù)進(jìn)行預(yù)測(cè)。在風(fēng)功率預(yù)測(cè)結(jié)果評(píng)價(jià)指標(biāo)中選取MSE、RMSE、MAE、R2,作為對(duì)比,選取了未經(jīng)過(guò)數(shù)據(jù)清洗的風(fēng)功率數(shù)據(jù)進(jìn)行隨機(jī)森林預(yù)測(cè)(RF)、經(jīng)過(guò)數(shù)據(jù)清洗的風(fēng)功率數(shù)據(jù)進(jìn)行隨機(jī)森林預(yù)測(cè)(IR-RF)、經(jīng)過(guò)數(shù)據(jù)清洗的風(fēng)功率數(shù)據(jù)進(jìn)行XGBoost預(yù)測(cè)(IR-XGB)以及未經(jīng)過(guò)數(shù)據(jù)清洗的風(fēng)功率數(shù)據(jù)進(jìn)行XGBoost預(yù)測(cè)(XGB),具體觀察所提出清洗方法的有效性以及預(yù)測(cè)模型的準(zhǔn)確性,其中IR-表示經(jīng)過(guò)數(shù)據(jù)清洗后的數(shù)據(jù)。由圖4及表1可知,進(jìn)行有效數(shù)據(jù)清洗后的數(shù)據(jù)導(dǎo)入模型后,對(duì)比未進(jìn)行有效數(shù)據(jù)清洗后的數(shù)據(jù),各項(xiàng)評(píng)價(jià)系數(shù)指標(biāo)都有了較為明顯的提高。而在模型選擇方面,選取的隨機(jī)森林模型在預(yù)測(cè)表現(xiàn)上也比XGBoost模型要稍好。
表1 預(yù)測(cè)結(jié)果對(duì)比分析表
圖4 預(yù)測(cè)結(jié)果對(duì)比分析圖
3.3.1 全部影響因素全局分析
將經(jīng)過(guò)隨機(jī)森林預(yù)測(cè)后的風(fēng)功率數(shù)據(jù)導(dǎo)入Shap歸因分析模型中。圖5為在風(fēng)功率預(yù)測(cè)過(guò)程,各個(gè)影響因素的影響力大小。平均|Shap值|是指該特征對(duì)目標(biāo)變量的影響程度。從圖5可以觀察得到,電機(jī)扭矩是影響風(fēng)力發(fā)電機(jī)功率的一個(gè)重要因素,重要程度大約是第二個(gè)特征影響因素槳葉角的兩倍。在其他的特征影響程度上可以看出槳葉角、大氣壓強(qiáng)、電阻、空氣溫度和風(fēng)速都是對(duì)風(fēng)功率影響較大的幾個(gè)因素。相比較而言,云層程度和齒輪箱溫度等十一個(gè)特征變量對(duì)風(fēng)功率預(yù)測(cè)的影響較小。
圖5 影響因素排序圖
圖6繪制出了每一個(gè)樣本中各個(gè)特征的Shap值,通過(guò)Shap值可以觀察出每一個(gè)特征變量對(duì)風(fēng)功率預(yù)測(cè)結(jié)果所作出的貢獻(xiàn),其中每一行代表不同的特征。每一個(gè)樣本點(diǎn)的顏色越黑,代表這個(gè)特征數(shù)據(jù)點(diǎn)自身的數(shù)值越大,顏色越灰,代表特征數(shù)據(jù)點(diǎn)自身的數(shù)值越小。觀察電機(jī)扭矩(f7)的Shap值可以發(fā)現(xiàn),當(dāng)電機(jī)扭矩(f7)處于較小值時(shí),將會(huì)對(duì)風(fēng)功率產(chǎn)生負(fù)向影響。電機(jī)扭矩(f7)處于較大值時(shí),會(huì)對(duì)風(fēng)功率產(chǎn)生正向影響。觀察到槳葉角(f4)特征對(duì)風(fēng)功率預(yù)測(cè)的影響時(shí),可以發(fā)現(xiàn)槳葉角(f4)越大對(duì)風(fēng)功率會(huì)產(chǎn)生負(fù)向影響,槳葉角(f4)越小時(shí),會(huì)對(duì)風(fēng)功率產(chǎn)生正向影響。
圖6 影響因素分析圖
3.3.2 單一影響因素全局分析
圖7為單一影響因素分析圖,橫軸為電機(jī)扭矩的具體數(shù)據(jù)值(歸一化處理),縱軸為電機(jī)扭矩變量的Shap值。由圖7觀察得到:當(dāng)0.23<電機(jī)扭矩<0.25或電機(jī)扭矩>0.62時(shí),Shap 值>0,對(duì)風(fēng)功率預(yù)測(cè)具有正向影響;當(dāng)電機(jī)扭矩>0.62時(shí),隨著電機(jī)扭矩具體數(shù)值的不斷增大,會(huì)導(dǎo)致電機(jī)扭矩對(duì)風(fēng)功率預(yù)測(cè)結(jié)果正向影響不斷增大。
圖7 單一影響因素全局分析
3.3.3 單一樣本分析
為了具體探究在單一樣本中每個(gè)特征變量對(duì)風(fēng)功率預(yù)測(cè)的影響,將分別選取功率預(yù)測(cè)值偏大,功率預(yù)測(cè)值偏小和兩個(gè)預(yù)測(cè)極端情況的風(fēng)功率預(yù)測(cè)樣本,如圖8所示。
圖8 風(fēng)功率預(yù)測(cè)得到偏小結(jié)果
圖8中的數(shù)值為各特征在具體樣本中的Shap值,圖中的基準(zhǔn)值是所有樣本預(yù)測(cè)中的平均值,黑色表示該特征會(huì)導(dǎo)致風(fēng)力發(fā)電機(jī)發(fā)電功率的增加,灰色表示該特征會(huì)導(dǎo)致風(fēng)力發(fā)電機(jī)發(fā)電功率的減少。在風(fēng)力發(fā)電機(jī)進(jìn)行發(fā)電時(shí)實(shí)際的發(fā)電量小于歷史平均發(fā)電量,變速箱溫度和風(fēng)速等特征變量對(duì)風(fēng)力發(fā)電機(jī)發(fā)電所產(chǎn)生的積極影響不足以抵消當(dāng)前時(shí)刻電機(jī)扭矩,槳葉角等特征變量對(duì)風(fēng)力發(fā)電機(jī)發(fā)電所產(chǎn)生的消極影響。圖9為風(fēng)功率預(yù)測(cè)偏大結(jié)果,圖9與圖8相似。圖10中所有的特征變量,無(wú)論是電機(jī)扭矩還是槳葉角和溫度等都對(duì)風(fēng)力發(fā)電機(jī)的發(fā)電有著積極影響,導(dǎo)致發(fā)電量增加,可能在當(dāng)前時(shí)刻風(fēng)力發(fā)電機(jī)的機(jī)身狀態(tài)和外部天氣因素都處于一個(gè)良好的狀態(tài)。而圖11所處的狀態(tài)與圖10幾乎完全相反。
圖9 風(fēng)功率預(yù)測(cè)得到偏大結(jié)果
圖10 風(fēng)功率預(yù)測(cè)得到極端偏小結(jié)果
圖11 風(fēng)功率預(yù)測(cè)得到極端偏大結(jié)果
由上述可知,在風(fēng)功率預(yù)測(cè)影響因素評(píng)估模型中,采用從數(shù)據(jù)全局到個(gè)體的分析方法,深入分析每一個(gè)特征變量對(duì)風(fēng)力發(fā)電機(jī)發(fā)電功率的影響,可以對(duì)風(fēng)電功率進(jìn)行預(yù)測(cè)、分析時(shí)提供更多的思路。
針對(duì)風(fēng)功率預(yù)測(cè)過(guò)程中,風(fēng)功率及其相關(guān)數(shù)據(jù)存在的數(shù)據(jù)質(zhì)量相對(duì)較差的問(wèn)題提出了基于孤立森林和LOF的數(shù)據(jù)清洗方法,對(duì)數(shù)據(jù)中的異常值進(jìn)行有效處理。而在傳統(tǒng)的風(fēng)電功率預(yù)測(cè)模型中同樣存在模型解釋性差的問(wèn)題,采用了基于Shap的歸因分析方法,使得分析風(fēng)功率預(yù)測(cè)模型時(shí)有更多的思路,對(duì)各模型輸入變量選取提供更多的科學(xué)依據(jù)。