冉浦東 范 磊 張 軍 張子凡 龐成鑫* 黃墀志
1(上海電力大學(xué)電子與信息工程學(xué)院 上海 201306) 2(國電南瑞南京控制系統(tǒng)有限公司 江蘇 南京 210000)
風(fēng)電作為可再生的清潔能源越來越受到國家和社會的重視,我國的北方和沿海地區(qū)是風(fēng)電場分布最密集的地區(qū),在秋冬寒冷季節(jié)極易發(fā)生葉片覆冰現(xiàn)象[2]。風(fēng)電機(jī)組在運(yùn)行時(shí)出現(xiàn)葉片覆冰現(xiàn)象會使風(fēng)機(jī)的發(fā)電量降低甚至停機(jī)而且葉片覆冰會縮短風(fēng)機(jī)的使用壽命甚至導(dǎo)致葉片折斷或者風(fēng)機(jī)倒塌[2]。風(fēng)力發(fā)電機(jī)的故障檢測研究可以提高其運(yùn)行可靠性,降低運(yùn)維成本,這對于目前風(fēng)電設(shè)備由于故障頻發(fā)所帶來的高昂的運(yùn)維成本來說極具經(jīng)濟(jì)價(jià)值[3]。本文提出的算法是一種以SVM模型作為基分類器的自適應(yīng)提升算法(Adaptive Boosting,Adaboost),能夠有效地提升風(fēng)力發(fā)電機(jī)葉片覆冰故障檢測準(zhǔn)確率和模型的泛化能力。
支持向量機(jī)(SVM)是一種以統(tǒng)計(jì)學(xué)和結(jié)構(gòu)風(fēng)險(xiǎn)最小化為理論基礎(chǔ)的機(jī)器學(xué)習(xí)經(jīng)典方法[4],其核技巧是把低維樣本空間中線性不可分的問題使用核函數(shù)映射到高維空間,使其在高維空間中線性可分并尋求距離兩類樣本的最優(yōu)分類超平面[5]。SVM對于非線性的分類問題有著非常好的分類效果,非常適合應(yīng)用于風(fēng)機(jī)葉片覆冰的檢測。在實(shí)際應(yīng)用中效果也很好,對風(fēng)機(jī)葉片覆冰檢測的準(zhǔn)確率也很高,但是在對結(jié)冰數(shù)據(jù)的查全率方面還有提升的空間。
Adaboost算法是一種迭代算法,首先初始化樣本權(quán)重,使每一個(gè)樣本權(quán)重相同,使用樣本集訓(xùn)練第一個(gè)基分類器模型,根據(jù)分類結(jié)果調(diào)整樣本的權(quán)重,被分類錯(cuò)誤的樣本權(quán)值會增加,分類正確的樣本權(quán)值會降低,通過這樣的方式來聚焦于那些難分的樣本,使這些樣本在下一輪分類中更容易被分類正確[6-7]。經(jīng)過多次迭代訓(xùn)練生成多個(gè)差異化的基分類器,最終的學(xué)習(xí)結(jié)果取決于多個(gè)基分類器分類結(jié)果的策略組合,其目的是通過提升的方式使算法變得更精確[8]。正是由于這種機(jī)制使得Adaboost算法對于樣本中少數(shù)的離群點(diǎn)很敏感[9]。
風(fēng)機(jī)葉片覆冰問題是典型的數(shù)據(jù)不平衡問題,常規(guī)的Adaboost-SVM算法在處理不平衡數(shù)據(jù)問題時(shí)可能會出現(xiàn)集成效率低、分類準(zhǔn)確率下降等問題。出現(xiàn)上述問題的原因是:(1) 以基分類器的分類準(zhǔn)確率作為該分類器的權(quán)值,會使得該模型的分類結(jié)果偏向于多數(shù)類,對少數(shù)類不利[10]。正確分類少數(shù)類樣本的分類規(guī)則及其特殊,其覆蓋率低,在訓(xùn)練過程中可能會被忽略。(2) Adaboost算法對離群點(diǎn)敏感,而不平衡數(shù)據(jù)中少數(shù)類樣本的離群點(diǎn)對Adaboost算法影響更加嚴(yán)重,為了能正確分類離群點(diǎn)數(shù)據(jù),會通過迭代生成多個(gè)準(zhǔn)確率極低的分類器,影響Adaboost-SVM模型的集成效率,甚至降低算法的分類準(zhǔn)確率。
Adaboost與SVM算法的結(jié)合與具體的模型訓(xùn)練過程和公式參考文獻(xiàn)[11-14]。針對上述問題和風(fēng)機(jī)葉片覆冰樣本數(shù)據(jù)的特點(diǎn)對常規(guī)Adaboost-SVM算法做出以下兩點(diǎn)改進(jìn):
(1) 首先使用線性核的SVM模型將部分未結(jié)冰數(shù)據(jù)和極少數(shù)結(jié)冰數(shù)據(jù)的離群點(diǎn)分類出來,再使用Adaboost-SVM算法對剩下部分?jǐn)?shù)據(jù)進(jìn)行進(jìn)一步分類和提升。這樣不僅可以減少該算法的計(jì)算量,降低剩余數(shù)據(jù)的不平衡程度,也消除了部分離群數(shù)據(jù)對算法的影響。
(2) 常規(guī)Adaboost-SVM算法最后的結(jié)果是對各個(gè)SVM分類器的分類結(jié)果進(jìn)行加權(quán)求和,權(quán)值就是各個(gè)分類器的分類準(zhǔn)確率,現(xiàn)改為各個(gè)SVM分類器的分類結(jié)果,結(jié)冰數(shù)據(jù)乘以結(jié)冰數(shù)據(jù)的權(quán)值,未接冰數(shù)據(jù)乘以未接冰數(shù)據(jù)的權(quán)值。而這兩類權(quán)值的取值就是SVM分類器輸出的兩類數(shù)據(jù)的準(zhǔn)確率。
算法流程如圖1所示。樣本數(shù)據(jù)經(jīng)過數(shù)據(jù)預(yù)處理和特征選擇后先經(jīng)過線性SVM模型進(jìn)行初步篩選,線性SVM分類為未接冰類型的數(shù)據(jù)準(zhǔn)確率高,可以直接作為最后的分類結(jié)果,而準(zhǔn)確率低的結(jié)冰類型數(shù)據(jù)會再經(jīng)過Adaboost-SVM模型進(jìn)行更精確的分類。
圖1 算法流程
首先初始化結(jié)冰類型樣本的權(quán)重,將每個(gè)樣本初始權(quán)重設(shè)置為W1,所以樣本的權(quán)重之和為1。再將帶有權(quán)值W1的樣本進(jìn)行訓(xùn)練第1個(gè)SVM模型,通過網(wǎng)格搜索的方法對SVM模型的懲罰系數(shù)C和核變量σ進(jìn)行優(yōu)化,得到第一個(gè)SVM模型,計(jì)算樣本在第1個(gè)SVM模型的整體錯(cuò)誤率e1,和整體準(zhǔn)確率a1和結(jié)冰類型的準(zhǔn)確率B1,未接冰數(shù)據(jù)準(zhǔn)確率C1。根據(jù)分類器準(zhǔn)確率a1更新樣本權(quán)重為W2。不斷循環(huán)上述步驟直道達(dá)到設(shè)置的迭代次數(shù)m。將各個(gè)SVM分類器的分類結(jié)果進(jìn)行加權(quán)求和得出最后的分類結(jié)果。
(1)
式中:F(Xi)為第j個(gè)樣本的最終分類結(jié)果;Gi(Xi)為第j個(gè)樣本在第i個(gè)SVM模型中的分類結(jié)果,當(dāng)Gi(Xi)為結(jié)冰時(shí)Ki=Bi,當(dāng)Gi(Xi)為未結(jié)冰時(shí)Ki=Ci。
本文數(shù)據(jù)來源于2017年工業(yè)大數(shù)據(jù)創(chuàng)新競賽中的15號風(fēng)機(jī)2個(gè)月時(shí)長和21號風(fēng)機(jī)1個(gè)月時(shí)長的SCADA數(shù)據(jù)以及結(jié)冰時(shí)間段和未結(jié)冰時(shí)間段。對數(shù)據(jù)進(jìn)行預(yù)處理:
(1) 去除其中無效數(shù)據(jù)、異常數(shù)據(jù)和重復(fù)數(shù)據(jù)。
(2) 根據(jù)結(jié)冰時(shí)間段和未結(jié)冰時(shí)間段將15號風(fēng)機(jī)和21號風(fēng)機(jī)所有數(shù)據(jù)分類并貼標(biāo)簽,把結(jié)冰數(shù)據(jù)標(biāo)為1,未結(jié)冰數(shù)據(jù)標(biāo)為-1。
(3) 對結(jié)冰和未結(jié)冰數(shù)據(jù)按時(shí)間序列分別進(jìn)行移動(dòng)滑窗處理。
(4) 對所有特征都進(jìn)行歸一化處理,降低不同量綱對分類結(jié)果的影響。
經(jīng)過數(shù)據(jù)預(yù)處理過后,15號風(fēng)機(jī)未結(jié)冰數(shù)據(jù)44 371組,結(jié)冰數(shù)據(jù)3 215組,21號風(fēng)機(jī)未結(jié)冰數(shù)據(jù)22 711組,結(jié)冰數(shù)據(jù)1 432組。在15號風(fēng)機(jī)數(shù)據(jù)的結(jié)冰數(shù)據(jù)中隨機(jī)抽取2 000個(gè)樣本在未結(jié)冰數(shù)據(jù)中隨機(jī)抽取2 000個(gè)樣本作為訓(xùn)練集。15號風(fēng)機(jī)其余數(shù)據(jù)作為測試集。21號風(fēng)機(jī)數(shù)據(jù)作為測試集。
由于本文中每組數(shù)據(jù)都有27個(gè)特征量,部分特征與結(jié)冰結(jié)果關(guān)系不明顯,不少特征含有很多重復(fù)信息或者無效信息。為了減少這些信息對模型最終分類結(jié)果的影響,降低模型的計(jì)算開銷,本文使用遞歸消除(Recursive Feature Elimination)加交叉驗(yàn)證的方法對訓(xùn)練集數(shù)據(jù)的特征進(jìn)行選擇,采用5折交叉驗(yàn)證,將數(shù)據(jù)平均分成5份,其中4份作為訓(xùn)練集,1份作為驗(yàn)證集,輪換5次最終的特征數(shù)量與結(jié)冰與否的相關(guān)性得分取5次結(jié)果的平均值。
如圖2所示,特征數(shù)量為11個(gè)時(shí),特征集與結(jié)冰與否的相關(guān)性達(dá)到最高,圖中的陰影部分表示在交叉驗(yàn)證中出現(xiàn)的波動(dòng)范圍。所以本文選擇在SVM模型中表現(xiàn)最好的11個(gè)特征來對模型進(jìn)行訓(xùn)練。特征重要性排名如圖3所示。
圖2 RFE最佳特征數(shù)
圖3 特征重要性排序
線性SVM模型用于初步篩選出樣本數(shù)據(jù)中的部分未結(jié)冰數(shù)據(jù)和極少數(shù)結(jié)冰數(shù)據(jù)的離群點(diǎn),要保證被線性SVM模型分為未結(jié)冰類型的數(shù)據(jù)分類準(zhǔn)確率高,且數(shù)據(jù)量盡可能大。使用訓(xùn)練集數(shù)據(jù)對線性SVM模型進(jìn)行訓(xùn)練,模型的權(quán)值系數(shù)clss-weight={-1:1=1:X},表示模型中未接冰數(shù)據(jù)的權(quán)值是1,而結(jié)冰數(shù)據(jù)的權(quán)值是X,通過調(diào)節(jié)X的大小來調(diào)節(jié)模型的分類效果。使用驗(yàn)證集數(shù)據(jù)對X取不同值的線性SVM模型的分類效果進(jìn)行驗(yàn)證,并選取最優(yōu)的X取值。X的取值與被結(jié)冰類型數(shù)據(jù)的準(zhǔn)確率和數(shù)據(jù)量的關(guān)系如圖4所示。
圖4 未結(jié)冰類型數(shù)據(jù)準(zhǔn)確率和數(shù)據(jù)量
數(shù)據(jù)量隨著X的增大而減小,當(dāng)X>6.5過后所有數(shù)據(jù)全被分模型分為結(jié)冰數(shù)據(jù)。分類準(zhǔn)確率在X=4時(shí)達(dá)到最大。最終選擇X為4的模型作為初步篩選的線性SVM模型,X=4時(shí)未接冰數(shù)據(jù)準(zhǔn)確率為99.672%,數(shù)據(jù)量為38.028%。
將訓(xùn)練集中被線性SVM模型分類為結(jié)冰數(shù)據(jù)類型的樣本作為新的訓(xùn)練集,訓(xùn)練改進(jìn)的Adaboost-SVM模型。利用驗(yàn)證集數(shù)據(jù)對本文算法與常規(guī)Adaboost-SVM算法在不同迭代次數(shù)下模型整體分類準(zhǔn)確率進(jìn)行比較。如圖5所示,本文算法在集成效率和準(zhǔn)確率方面優(yōu)于常規(guī)的Adaboost-SVM算法。確定本文算法迭代次數(shù)m=55,常規(guī)Adaboost-SVM算法m=80。
圖5 迭代次數(shù)與準(zhǔn)確率關(guān)系圖
在實(shí)際運(yùn)行中風(fēng)力發(fā)電機(jī)葉片結(jié)冰時(shí)長遠(yuǎn)小于不結(jié)冰時(shí)長。這就要求我們在判斷模型預(yù)測和檢測有效標(biāo)準(zhǔn)時(shí)不能僅僅以整體的精確度作為唯一標(biāo)準(zhǔn),要從精確度、查全率、查準(zhǔn)率與F1等多方面進(jìn)行評價(jià)。
使用測試集數(shù)據(jù)對本文算法,常規(guī)Adaboost-SVM算法和SVM算法進(jìn)行測試比較,其結(jié)果如表1所示。表1中的算法在測試集都表現(xiàn)出了相當(dāng)不錯(cuò)的精確度,但是在查準(zhǔn)率方面都普遍較低,這也符合不平衡數(shù)據(jù)的特征。
表1 4種分類算法的檢測結(jié)果對比
從檢測速度方面來看,本文算法由于要對數(shù)據(jù)進(jìn)行前期篩選和部分?jǐn)?shù)據(jù)的多次迭代,所以檢測時(shí)間大于SVM算法和Adaboost算法。但是相比于將所有數(shù)據(jù)都進(jìn)行多次迭代的Adaboost-SVM算法來說,本文算法的運(yùn)算速度有較大的優(yōu)勢。而本文算法在精確度、查全率、查準(zhǔn)率和F1度量方面相比于其他三種算法都有明顯的提升。尤其是結(jié)冰數(shù)據(jù)的查全率方面,在實(shí)際的風(fēng)機(jī)葉片覆冰的故障檢測中,故障的查全率非常重要,因?yàn)橐坏┌l(fā)生故障就會面臨嚴(yán)重的經(jīng)濟(jì)損失和安全問題。
為了比較不同算法模型在風(fēng)機(jī)葉片覆冰檢測中的效果,引入2017工業(yè)大數(shù)據(jù)競賽評分標(biāo)準(zhǔn):
(2)
式中:S為模型檢測得分;α為結(jié)冰數(shù)據(jù)在總數(shù)據(jù)中所占的比例;β為未結(jié)冰數(shù)據(jù)在總數(shù)據(jù)中所占的比例;TP為真正例;TN為真反例;FP為假正例;FN為假反例。模型檢測得分S權(quán)衡了數(shù)據(jù)的不平衡性,能夠科學(xué)地評價(jià)各個(gè)算法模型對測試集的綜合檢測能力。本文模型和文獻(xiàn)[15-16]中的各種神經(jīng)網(wǎng)絡(luò)算法模型得分對比如表2所示。
表2 算法模型評分對比
可以看出本文算法的模型檢測得分相比于文獻(xiàn)[15-16]中的各種神經(jīng)網(wǎng)絡(luò)算法模型有明顯優(yōu)勢的。
(1) 本文算法能夠有效地對風(fēng)力發(fā)電機(jī)葉片覆冰故障進(jìn)行檢測,相比SVM、Adaboost和Adaboost-SVM算法整體精確度,結(jié)冰故障的查全率和查準(zhǔn)率更高。相比于CNN、LSTM等神經(jīng)網(wǎng)絡(luò)算法有更高的綜合檢測能力,更加適應(yīng)不平衡數(shù)據(jù)的分類問題。
(2) 本文提出的集成權(quán)值的變化有利于提升Adaboost算法在處理不平衡數(shù)據(jù)時(shí)的集成效率和準(zhǔn)確率。
(3) 本文算法也存在一些不足,算法的檢測時(shí)間較SVM和Adaboost算法略長,算法在結(jié)冰數(shù)據(jù)的查準(zhǔn)率方面仍有很大的提升空間,這將是我在接下來的研究中要解決的問題。
綜合來看本文方法對于風(fēng)機(jī)葉片覆冰檢測問題具有較高的實(shí)用價(jià)值。