劉鈺宸, 安 靜
(上海應用技術(shù)大學 電氣與電子工程學院,上海 201418)
隨著社會經(jīng)濟的不斷發(fā)展,在生產(chǎn)過程中所需要的電力資源也越來越多,傳統(tǒng)的火力發(fā)電消耗較多的不可再生能源,能源消耗的問題變得更加嚴重。因此,在世界范圍內(nèi)都在進行可再生能源的開發(fā)與探索。其中,風能是比較容易進行利用的一種可再生資源,風力發(fā)電機作為一種風力發(fā)電的主要設(shè)備也被廣泛的使用[1]。由于低溫、潮濕和機械振動容易造成風力發(fā)電機葉片的裂紋損傷,在風力發(fā)電機設(shè)備損壞問題中,葉片開裂問題是最為嚴重的。葉片振動產(chǎn)生的彎扭力會使原有裂紋不斷加深、加長、擴張,最后導致發(fā)電機葉片開裂甚至斷裂。而葉片開裂的維修也非常困難,需要托運到廠家進行維修,維修的費用和時間成本都非常高昂。定期檢測和預測風力發(fā)電機葉片開裂情況,是保障運轉(zhuǎn)的重要因素。使用機器學習算法對風力發(fā)電機葉片數(shù)據(jù)進行分析具有重要的現(xiàn)實意義。
在預測領(lǐng)域,梯度提升決策樹(gradient boosting decision tree,GBDT)算法是一種應用最為廣泛的預測算法,能夠在大部分的預測任務上取得比其他方法更為優(yōu)秀的預測結(jié)果。GBDT算法最初由Friedman[2]提出,并將其應用于分類和回歸任務。眾多研究人員對GBDT算法進行了研究,其中Chen等[3]提出的XGBoost算法取得了較好的效果。劉宇等[4]將XGBoost算法應用于心臟病的預測,趙洪山等[5]使用XGBoost算法結(jié)合深度自編碼網(wǎng)絡對GBDT風電機組發(fā)電機故障進行診斷。
本文針對XGBoost算法占用較大內(nèi)存,并且訓練速度較慢的不足,提出了一種皮爾森相關(guān)性系數(shù)以及模型特征重要性篩選特征結(jié)合基于lightGBM改進的GBDT算法。首先對風力發(fā)電機葉片數(shù)據(jù)進行分析,其次,提取較為重要的特征進行訓練,最后分別使用基于LightGBM的GBDT算法和GBDT算法構(gòu)建預測模型,并將這2種模型的預測結(jié)果進行對比分析。
風機葉片開裂故障主要是由于共振,主要與風力發(fā)電機的機械特性有關(guān)[6]。共振的特點是能夠在非常短的時間內(nèi)對風機葉片造成巨大破壞[7-9]。但是葉片的數(shù)據(jù)在開裂之前都是正常的,只有在發(fā)生故障這段時間數(shù)據(jù)有異常,所以很多數(shù)據(jù)都是無效的。因此,需要對數(shù)據(jù)進行特征提取。
由于數(shù)據(jù)是從真實場景下獲取的,數(shù)據(jù)集不完整,存在少量數(shù)據(jù)缺失,不能直接用于訓練,所以本文通過求最大值、最小值、均值和標準差的方式,同時進行對數(shù)據(jù)的去空和去噪處理[10],保持訓練模型的精準性等操作對所選取的數(shù)據(jù)進行預處理。
皮爾森相關(guān)性系數(shù)也稱皮爾森積矩相關(guān)系數(shù),是一種線性相關(guān)系數(shù),能夠體現(xiàn)出變量之間的線性相關(guān)程度,是最常用的一種相關(guān)系數(shù)[11]。運用皮爾森相關(guān)性系數(shù)分析風力發(fā)電機運行的數(shù)據(jù)特征,確定特征之間是否緊密相關(guān),如果相關(guān)就屬于重復特征,可以去除,從而降低機器學習數(shù)據(jù)維度,得到更好的模型。
首先,計算出原始數(shù)據(jù)中的皮爾森相關(guān)性系數(shù),皮爾森相關(guān)性系數(shù)的公式定義如下:
(1)
式中:兩個連續(xù)變量(X,Y)的皮爾森相關(guān)性系數(shù)PX,Y等于它們之間的協(xié)方差cov(X,Y)除以它們各自標準差σX、σY的乘積。
對真實場景下獲得的數(shù)據(jù)集運用皮爾森相關(guān)性系數(shù)的方法進行分析,對相關(guān)性較大的數(shù)據(jù)進行特征提取。本文取皮爾森相關(guān)性系數(shù)前5的特征,如圖1所示。
圖1 皮爾森相關(guān)性系數(shù)分析
本文使用的是樹模型,因此可以通過計算特征重要性來進行特征提取,特征重要性的計算方法是,基于單棵樹計算每個特征的重要性,探究每個特征在每棵樹上做了多少的貢獻,最后再計算出平均值(見圖2)。
本文通過基尼指數(shù)計算特征重要性。基尼指數(shù)定義如下:
(2)
模型重要性評分定義如下:
(3)
圖2 模型特征重要性分析
本文取模型相關(guān)性系數(shù)前45的特征。
GBDT算法主要步驟:利用訓練數(shù)據(jù)集迭代計算目標與實際值的殘差,每次更新弱學習器參數(shù)最終得到符合要求的強學習器,同時得到擬合出的回歸樹。預測時將所有樹的結(jié)果進行累計作為最終的預測結(jié)果,即通過多個弱學習器組成一個強學習器。采用GBDT算法預測風力發(fā)電機葉片開裂過程是先利用風力發(fā)電機運行數(shù)據(jù)集的一部分數(shù)據(jù)作為訓練數(shù)據(jù)集,迭代計算更新弱分類器,最后得到擬合完成的回歸樹,利用剩余的風力發(fā)電機運行數(shù)據(jù)驗證強學習器預測準確度。計算過程如下:
設(shè)回歸樹為
(4)
式中:l(x∈Rj)為指示函數(shù);bj為回歸樹結(jié)點上的數(shù)值。
定義回歸樹模型為
(5)
式(5)整理為
(6)
式中,γjm=ρmbjm。
Guo等[12]提出的lightGBM算法是一種新的梯度提升框架,對于其他的GBDT算法來說,基于lightGBM改進的GBDT算法,主要2個關(guān)鍵步驟:① 對訓練樣本數(shù)據(jù)利用數(shù)據(jù)梯度變化和設(shè)定梯度閾值來進行采樣,保證數(shù)據(jù)的同時減少數(shù)據(jù)以降低計算量,提高生成的強分類器的預測準確率;② 遍歷訓練樣本所有特征進行特征綁定沖突率計算,根據(jù)設(shè)定的綁定沖突閾值進行特征選擇,對低于綁定沖突率的特征進行獨立特征合并,使不同維度數(shù)據(jù)合并在一起,由此特征空間有稀疏狀態(tài)變成稠密狀態(tài)。通過數(shù)據(jù)采樣與獨立特征合并之后再進行初始化弱學習器、更新弱分類器和生成強學習器。通過以上2個步驟能夠提高風力發(fā)電機葉片開裂預測準確性,同時具有更快的運算速度,更小的內(nèi)存占用,以及更高的效率。
數(shù)據(jù)集T,定義回歸樹模型為
(7)
損失函數(shù)為
(8)
采用牛頓法對上式進行擬合
(9)
式中:gi為損失函數(shù)的一階梯度;hi為損失函數(shù)的二階梯度。
設(shè)Ij為回歸樹結(jié)點j上的樣本集合,則上述損失函數(shù)可以變?yōu)?/p>
(10)
式中:ω為權(quán)重;j表示葉節(jié)點數(shù)。求解上式:
(11)
(12)
則得到的最優(yōu)弱學習器
(13)
(2)Form=1~M,M為生成樹的個數(shù)。
① Fori=1,2,3,…,N。N為訓練樣本數(shù)量
(14)
② 計算梯度、依據(jù)特征梯度劃分數(shù)據(jù)集分割數(shù)據(jù)產(chǎn)生節(jié)點,Rjm,j=1,2,…,Jm
③ Forj=1,2,3,…,Jm
(15)
xi∈Rjm
④ 更新
(16)
(3)輸出f(x)=fM(x)得到強學習器提升回歸樹。
(4)依據(jù)訓練結(jié)果輸入測試集中風力發(fā)電機運行數(shù)據(jù)中的特征值預測未來風力發(fā)電機發(fā)生葉片開裂的可能性。
(1)輸入訓練數(shù)據(jù)I,最大梯度d,大梯度采樣比例系數(shù)a,小梯度采樣比例系數(shù)b,初始化損失函數(shù)loss以及弱學習器L。
(4)將(3)步獲得的大梯度風力發(fā)電機運行數(shù)據(jù)樣本與小梯度風力發(fā)電機運行數(shù)據(jù)樣本拼接,對于小梯度樣本乘以fact。
(5)獨立特征綁定輸入特征F,最大沖突率K,綁定bundles={ }(表示綁定后的合并特征數(shù)組),綁定沖突bundlesConflict={ }(表示每一個特征綁定后的沖突率組成的數(shù)組)。對每一個特征進行計算是否小于綁定沖突,若否需要綁定,運行所有特征。最后,合并獨立特征,輸出合并后的獨立特征。
(6)通過將采樣后的風力發(fā)電機運行數(shù)據(jù)和獨立特征合并后的特征輸入原始的GBDT算法進行弱學習器反復迭代,最終得到能夠預測風力發(fā)電機葉片開裂的強學習器,并利用25%的風力發(fā)電機運行數(shù)據(jù)做葉片開裂預測與驗證。
本文采用的數(shù)據(jù)來源于國際電力投資集團有限公司,發(fā)布的5萬條采集于300臺風力發(fā)電機連續(xù)兩個月的運行數(shù)據(jù),其中包含風力發(fā)電機葉片開裂故障30次。風力發(fā)電機運行數(shù)據(jù)共有75個特征,全部特征如下表1所示。其中,75%的風力發(fā)電機運行數(shù)據(jù)(其包含風力發(fā)電機葉片開裂故障數(shù)據(jù))用來訓練GBDT算法與lightGBM改進的GBDT算法的強學習器,25%的運行數(shù)據(jù)用來做風力發(fā)電機葉片開裂預測驗證。
對訓練數(shù)據(jù)集分別采用了GBDT算法與lightGBM改進的GBDT算法進行訓練,通過初始化殘差生成弱學習器,計算殘差尋找最佳劃分點并利用數(shù)據(jù)特征劃分數(shù)據(jù)生成葉子節(jié)點,之后更新弱學習器反復迭代最終獲得具有預測能力的強學習器。但由于兩種算法的差異使得訓練數(shù)據(jù)時的計算量、風力發(fā)電機葉片開裂預測結(jié)果出現(xiàn)不同。風力發(fā)電機運行數(shù)據(jù)采用GBDT算法預測時,由于該算法不進行數(shù)據(jù)與特征處理,使用所有特征數(shù)據(jù)進行全局弱學習器更新使得計算量非常大,具有75個特征的風力發(fā)電機運行數(shù)據(jù)在一棵樹一次迭代時計算次數(shù)至少需要275以上,生成數(shù)量龐大的葉子節(jié)點,進行多棵樹多次運行數(shù)據(jù)迭代后計算量將更大。
表1 風力發(fā)電機運行數(shù)據(jù)特征列表
基于lightGBM改進的GBDT算法在第一次弱學習器迭代前,首先利用風力發(fā)電機運行數(shù)據(jù)中樣本的梯度與初始化后產(chǎn)生的誤差對訓練樣本數(shù)據(jù)進行采樣,對運行數(shù)據(jù)中梯度絕對值大的保留,梯度絕對值小的數(shù)據(jù)集采樣一部分子集,同時給該數(shù)據(jù)子集權(quán)重,使得這部分子集能夠近似代替梯度小的數(shù)據(jù)全集,采樣后的風力發(fā)電機運行數(shù)據(jù)集不會丟失梯度大的訓練樣本,不改變樣本數(shù)據(jù)的分布狀態(tài),同時能夠減少訓練樣本數(shù)量和降低計算量,訓練速度大大加快。采用基于lightGBM改進的GBDT算法預測風力發(fā)電機葉片開裂的另一優(yōu)勢在于該算法能夠降低特征維度,對于具有75個特征的風力發(fā)電機運行數(shù)據(jù)其特征空間是稀疏的,利用算法的獨立特征合并能夠使不同維度數(shù)據(jù)合并在一起,使特征空間有稀疏狀態(tài)變成稠密狀態(tài),進行了數(shù)據(jù)采樣與獨立特征合并之后進行GBDT算法初始化弱學習器、更新弱分類器和生成強學習器,最后使用剩余風力發(fā)電機運行數(shù)據(jù)預測葉片開裂,驗證預測結(jié)果。
圖3所示為GBDT算法與基于lightGBM改進的GBDT算法進行第一次迭代前輸入弱學習器的數(shù)據(jù)量,經(jīng)過采樣后數(shù)據(jù)量減少,因此更新弱學習器時輸入樣本減少,計算量降低。
圖3 基于lightGBM改進的GBDT算法對輸入樣本采樣后數(shù)據(jù)與GBDT算法輸入樣本數(shù)據(jù)量對比
圖4 基于lightGBM改進的GBDT算法對輸入樣本特征與GBDT算法輸入樣本特征對比
圖4所示為GBDT算法與基于lightGBM改進的GBDT算法更新迭代弱學習器前特征數(shù)量對比,通過獨立特征合并使得特征數(shù)量減少。圖中基于lightGBM改進的GBDT算法的特征合并后數(shù)量降為30個特征大大減少了計算葉子結(jié)點時最佳劃分點的計算消耗,通過實驗發(fā)現(xiàn)合并的的特征中輪轂轉(zhuǎn)速和角度、葉片1、2、3角度、變槳電機1、2、3電流、x、y方向振動值、機艙氣象站風速、大氣壓力、風向絕對值、無功功率控制狀態(tài)、額定的輪轂轉(zhuǎn)速、機艙氣象站風速、變頻器電網(wǎng)側(cè)電流、電壓、有功功率、無功率、變頻器入口、出口溫度,入口、出口壓力等被分類合并,而與溫度相關(guān)的測風塔環(huán)境溫度發(fā)電機定子1、2、3、4、5、6溫度、發(fā)電機空氣溫度、主軸承溫度、機艙、控制柜溫度、變頻器INU、ISU溫度等特征沒有被合并,這說明被合并的特征相互之間相關(guān)性小,相互獨立,未被合并的特征相互之間相關(guān)性大。對于功率轉(zhuǎn)矩電流電壓等特征是相互產(chǎn)生影響,而風力發(fā)電機處于開放空間中由于熱傳導的原因距離較近的多臺設(shè)備,其溫度必然會相互影響溫度,進而在測量得到的風力發(fā)電機運行數(shù)據(jù)中相互關(guān)聯(lián)。
表2中對比了采用2種算法對風力發(fā)電機運行數(shù)據(jù)中用于訓練的數(shù)據(jù)集,進行預測驗證,2種算法都具有非常高的準確率,將訓練數(shù)據(jù)集中的22處風力發(fā)電機葉片開裂故障準確檢測。這表明通過兩種算法訓練的弱學習器和強學習器具有基本的預測能力,之后將訓練得到的2個強學習器用于風力發(fā)電機運行數(shù)據(jù)的剩余數(shù)據(jù)集驗證,檢測強學習器預測風力發(fā)電機葉片開裂的能力。
表2 采用GBDT算法與基于lightGBM改進的GBDT算法在風力發(fā)電機運行數(shù)據(jù)訓練集中預測結(jié)果
Tab.2 GBDT algorithm and improved GBDT algorithm based on lightGBM are used to predict the results of wind turbine operation data training set
算法預測風力發(fā)電機葉片開裂故障/次數(shù)驗證訓練樣本風力發(fā)電機葉片開裂故障/次數(shù)GBDT算法2222lightGBM改進的GBDT算法2222
由表3、表4可以得到對于含有相同的葉片開裂故障的風力發(fā)電機運行數(shù)據(jù)集,2種算法的預測結(jié)果有較大差異?;趌ightGBM改進的GBDT算法的算法預測效果顯著優(yōu)于未改進的GBDT算法,這說明對風力發(fā)電機運行數(shù)據(jù)進行采樣和獨立特征合并不僅提高了計算速度,而且利用部分特征之間的互斥性在降低特征維度的同時提高了風力發(fā)電機葉片開裂預測的準確性。但基于lightGBM改進的GBDT算法仍然不能完全預測出風力發(fā)電機葉片開裂,這是由于在采樣系數(shù)的選擇中,對于大梯度和小梯度選擇的取舍,小梯度的系數(shù)過于小會造成數(shù)據(jù)集中丟失一部分有用信息,大梯度系數(shù)太大會造成數(shù)據(jù)集中包含的特征過于集中于某些特征丟失一些特征信息。獨立特征合并時也會造成一些信息損失,對于選取合適的最大沖突率,使得特征合并適量也非常重要。對于不同的風力發(fā)電機運行數(shù)據(jù)其參數(shù)設(shè)置往往不同。因此,基于lightGBM改進的GBDT算法采樣系數(shù)、最大沖突率參數(shù)選擇十分關(guān)鍵。GBDT算法沒有進行數(shù)據(jù)采樣以及獨立特征合并,但預測能力較低的重要原因,一方面是由于未進行獨立特征合并不能充分發(fā)揮特征特性,另一方面是由于對于風力發(fā)電機葉片開裂預測問題,所采集的數(shù)據(jù)并不能夠非常完整的描述風力發(fā)電機運行狀態(tài)特征,使得不同的葉片開裂時所具有的真實特征不一致,用于GBDT算法與基于lightGBM改進的GBDT算法不能從獲得的風力發(fā)電機運行數(shù)據(jù)中分析出另外特殊情況下風力發(fā)電機葉片開裂的故障。這是預測算法必須面臨的問題,在風力發(fā)電機運行數(shù)據(jù)訓練集中從來為出現(xiàn)的葉片開裂狀況,是不能準確預測到的只能表示葉片開裂發(fā)生的可能性。
表3 采用GBDT算法預測風力發(fā)電機葉片開裂情況以及樣本驗證
Tab.3 The wind turbine blade cracking and sample verification were predicted by GBDT algorithm
數(shù)據(jù)索引編號風力發(fā)電機葉片開裂與否驗證樣本風力發(fā)電機葉片開裂數(shù)據(jù)索引編號預測正確與否21100開裂21100正確23232開裂23232正確無未檢測數(shù)出25002錯誤25890開裂25890正確無未檢測出26785錯誤無未檢測出32106錯誤43567開裂43567正確48982開裂48982正確
表4 采用基于lightGBM改進的GBDT算法預測風力發(fā)電機葉片開裂以及樣本驗證
Tab.4 The wind turbine blade cracking and sample verification were predicted by the improved GBDT algorithm based on lightGBM
數(shù)據(jù)索引編號風力發(fā)電機葉片開裂與否驗證樣本風力發(fā)電機葉片開裂數(shù)據(jù)索引編號預測正確與否21100開裂21100正確無未檢測數(shù)出23232錯誤25002開裂25002正確25890開裂25890正確26785開裂26785正確32106開裂32106正確43567開裂43567正確48982開裂48982正確
本文采用F1-score進行模型的評價
(17)
式中:P表示精準度;R表示召回率;F1-score表示預測的準確度其值在0~1之間。
本文采用了GBDT算法和基于lightGBM改進的GBDT算法,并對這2種算法預測風力發(fā)電機葉片是否開裂的結(jié)果進行了比較,如表5所示。由表5得出GBDT算法預測的風力發(fā)電機葉片開裂準確性低于基于lightGBM改進的GBDT算法。未改進的GBDT算法對于風力發(fā)電價葉片開裂預測準確性只有62.3%,而基于lightGBM改進的GBDT算法對于風力發(fā)電價葉片開裂預測準確性達到了87.5%,其具有更高的可信度。
表5 變參數(shù)模型參數(shù)點選取
Tab.5 Select parameter points of the variable parameter model
算法F1-scoreGBDT0.625基于lightGBM改進的GBDT0.875
本文通過使用基于lightGBM改進的梯度提升決策樹算法與lightGBM梯度提升決策樹算法,建立了風力發(fā)電機葉片開裂預測模型。對采集于風力發(fā)電機的運行數(shù)據(jù)進行分析準確預測出了風力發(fā)電機葉片開裂故障。同時,將lightGBM梯度提升決策樹算法和基于lightGBM改進的梯度提升決策樹算法建立的預測模型進行了比較,預測結(jié)果表明,基于lightGBM改進的梯度提升決策樹算法的模型擁有得更好的預測性能,能夠為風力發(fā)電機開裂提供較為準確的預測信息。采用基于lightGBM改進的梯度提升決策樹算法通過對樣本數(shù)據(jù)的采樣,刪減了樣本中梯度變化較小的樣本,從而降低了樣本數(shù)量,此外,對于每一個特征該算法計算特征之間的相關(guān)性,對相關(guān)性小的相互獨立的特征進行捆綁,使得劃分點特征數(shù)量減少降低計算量的同時能夠提高風力發(fā)電機預測的準確性。但基于lightGBM改進的梯度提升決策樹算法并不能每次都完全預測風力發(fā)電機葉片開裂故障,因為對于預測問題始終存在訓練樣本是否完全包含風力發(fā)電機葉片開裂的所有相關(guān)特征,顯然在現(xiàn)實環(huán)境中不可能滿足。基于lightGBM改進的梯度提升決策樹算法也存在樣本采樣時的最小梯度選取、獨立特征合并時最大沖突率選取等問題需要完善。