蘆佩雯,黃永晶,張 恒,董鳳珠
(1.成都紡織高等??茖W(xué)校電氣信息工程學(xué)院,成都 611731;2.西華大學(xué)電氣與電子信息學(xué)院,成都 610039)
變壓器是發(fā)電廠和變電所的核心設(shè)備之一,對(duì)變壓器故障診斷展開研究,對(duì)于降低故障發(fā)生率,提高電力系統(tǒng)的可靠性,具有重要的現(xiàn)實(shí)意義[1]。
變壓器出現(xiàn)故障后,其油液溶解的氣體與正常工作狀態(tài)下的氣體濃度具有明顯差異,變壓器油中溶解氣體分析(dissolved gas analysis,DGA)基于此對(duì)變壓器故障類別進(jìn)行識(shí)別[2],方法簡(jiǎn)單實(shí)用,但故障類型的判定過于依賴專家經(jīng)驗(yàn),存在故障類別判定不全,無法識(shí)別多故障類別的局限。
尹豪杰[3]在DGA的基礎(chǔ)上,將4種常見的單一預(yù)測(cè)方法和馬爾科夫理論、誘導(dǎo)有序加權(quán)平均算子結(jié)合起來,提出了一種新的DGA預(yù)測(cè)模型;劉佳佳[4]將DGA和指標(biāo)加權(quán)法結(jié)合起來,建立了一種變壓器故障在線監(jiān)測(cè)方法;葛許良[5]在DGA的基礎(chǔ)上,構(gòu)建了分類深度置信網(wǎng)絡(luò)(CDBN)診斷模型,提出了變壓器在線監(jiān)測(cè)與故障診斷方法;朱遙野[6]利用BP神經(jīng)網(wǎng)絡(luò)和灰色理論建立組合模型實(shí)現(xiàn)變壓器故障性質(zhì)診斷;賈京龍[7]分別選取深度學(xué)習(xí)機(jī)、極限學(xué)習(xí)機(jī)對(duì)變壓器故障進(jìn)行診斷;李春茂、徐牧等分別將粗糙集[8-9]、神經(jīng)網(wǎng)絡(luò)[10]、支持向量機(jī)[11-12]、專家系統(tǒng)[13]、模糊理論[14]等人工智能方法用于變壓器的故障診斷,并取得較好的診斷效果。但是,這些方法在使用過程中,受到隨機(jī)因素的影響,穩(wěn)定性較差,并且隨機(jī)初始化權(quán)值具有缺陷,容易陷入極限值,其可靠性和適應(yīng)性有待提高。
本文對(duì)基于Bagging的集成算法做了進(jìn)一步理論分析,提出基于SMOTE的Bagging改進(jìn)算法,既克服了傳統(tǒng)Bagging和Boosting算法存在盲目性和隨機(jī)性的缺點(diǎn),保證整體的分類準(zhǔn)確率,又提高對(duì)少數(shù)類分類精度,并在基于DGA的變壓器故障診斷中驗(yàn)證該方法的性能。
與標(biāo)準(zhǔn)AdaBoost只適用于二分類任務(wù)不同,Bagging能不經(jīng)修改地用于多分類、回歸等任務(wù)。Bagging(bootstrap aggregating)算法通過構(gòu)造預(yù)測(cè)函數(shù)系列,再以一定的方式重新組合成新的預(yù)測(cè)函數(shù)提高學(xué)習(xí)算法的準(zhǔn)確度。邏輯上講Bagging模型就是利用并行訓(xùn)練多個(gè)弱分類器,構(gòu)成一個(gè)強(qiáng)分類器。單個(gè)弱學(xué)習(xí)算法通過多次使用該學(xué)習(xí)算法,得到新的預(yù)測(cè)函數(shù)序列,可以有效減少數(shù)據(jù)變化帶來的誤差,提升預(yù)測(cè)準(zhǔn)確率。
Bagging算法分為兩個(gè)步驟:(1)分類,對(duì)每個(gè)基分類器抽樣并訓(xùn)練得到強(qiáng)學(xué)習(xí)機(jī),以強(qiáng)學(xué)習(xí)機(jī)作為模型,將多個(gè)弱分類器集成為強(qiáng)分類器;(2)自助采樣,對(duì)基分類器的結(jié)果用加權(quán)或投票的方式進(jìn)行合并,提高集成模型的預(yù)測(cè)精度,完成待診斷記錄的故障判別[15]。
具體算法如下。
輸入:訓(xùn)練集合T,測(cè)試數(shù)據(jù)x,分類方法C;
輸出:x的類別判別R。
begin
for i=1,2,…,Ndo
Ti=bootstrap(T);
Ci=C(Ti);
Ri=Ci(x);
endfor.
R=CntMax(Ri);
end.
其中,CntMax表示尋求最多的支持類別,由N個(gè)分類器的判定結(jié)果得到。
自助采樣也是Bagging的一個(gè)優(yōu)點(diǎn):因?yàn)槊總€(gè)基學(xué)習(xí)器只使用了初始訓(xùn)練集中約60%的樣本,剩下的40%的樣本可用作驗(yàn)證集對(duì)泛化性能進(jìn)行“包外估計(jì)”,所以,記錄每個(gè)基學(xué)習(xí)器的訓(xùn)練樣本,并且令Tn表示tn實(shí)際使用的訓(xùn)練樣本集,令Toob()
x表示對(duì)樣本x的包外預(yù)測(cè),即僅考慮那些未使用訓(xùn)練的基學(xué)習(xí)器在x上的預(yù)測(cè),有:
則Bagging泛化誤差的包外估計(jì)為:
Bagging主要關(guān)注降低方差,因此它在支持向量機(jī)、神經(jīng)網(wǎng)絡(luò)等容易受樣本擾動(dòng)的學(xué)習(xí)器上效果更為明顯。本文將支持向量機(jī)、神經(jīng)網(wǎng)絡(luò)等作為基學(xué)習(xí)器,將Bagging算法進(jìn)行改進(jìn)以提高變壓器故障診斷的性能。
傳統(tǒng)的Bagging算法,對(duì)訓(xùn)練集樣本隨機(jī)采樣,泛化能力強(qiáng),分類精度高,但集成規(guī)模大,輸出預(yù)測(cè)結(jié)果的速度較慢,并不是最理想的算法。
虛擬少數(shù)類向上采樣是Chawla等[16]提出的一種向上采樣方法,簡(jiǎn)稱為SMOTE(synthetic minority over-sampling technique),假設(shè)X是少數(shù)類樣本的輸入,它有a個(gè)同類最近鄰,記為a1~an,隨機(jī)選擇ai,在X和ai之間進(jìn)行隨機(jī)線性插值,即可構(gòu)造出新的少數(shù)類樣本,新樣本為
式中:u(0,1)為(0,1)之間的隨機(jī)數(shù)。
SMOTE算法在原有訓(xùn)練集樣本的基礎(chǔ)上,按照一定的方法生成新樣本,擴(kuò)大樣本個(gè)數(shù),使分類器的分類平面從少數(shù)類向多數(shù)類擴(kuò)展,從而不用擔(dān)心分類器過度擬合的問題。
基于SMOTE的Bagging改進(jìn)算法,首先利用SMOTE算法生成新樣本,提高少數(shù)類樣本與多數(shù)類樣本之間的平衡性;接著通過對(duì)少數(shù)類樣本加權(quán)的方式使基分類器偏重少數(shù)類樣本,提高少數(shù)類的分類精度;最后利用Bagging算法進(jìn)行集成改進(jìn),既提高了少數(shù)類分類精度,又保證了整體分類的準(zhǔn)確率,具有很好效果。
定義:X為樣本總集;n為樣本數(shù)組;Xmin為X中的少數(shù)類樣本;Xmax為X中的多數(shù)類數(shù)組樣本;k為計(jì)數(shù)數(shù)組;w為樣本權(quán)重;IB、OB為樣本集合;R為任意樣本;abs()為求絕對(duì)值,Mean()為求均值;Square()為求方差。
闡述算法步驟如下。
(1)確定少數(shù)類樣本
分別記錄樣本總集X中每個(gè)類別所包含樣本個(gè)數(shù)k和樣本數(shù)組n;計(jì)算k的均值Mean(k)、方差Square(k);若樣本k[i]<Mean(k)且 abs(k[i]-Mean(k))>Square(k),則此類為少數(shù)類樣本:Xmin[j]=n[i];反之為多數(shù)類樣本:Xmax[j]=n[i]。
(2)增加少數(shù)類樣本的數(shù)量
根據(jù)SMOTE算法,對(duì)少數(shù)類樣本Xmin中的任意樣本R求5個(gè)同類最近鄰a1~a5,選擇其中一個(gè)最近鄰ai,計(jì)算R與ai的屬性差值向量R-ai;選取(0,1)之間的隨機(jī)數(shù)u,由式(1)得到新樣本Rnew=R+u(0,1)·(R-ai),以此類推,每個(gè)樣本通過這種方式得到10個(gè)新樣本,將所有新樣本加入原樣本總集,得到新的樣本總集Xnew。
(3)確定訓(xùn)練樣本權(quán)重
對(duì)新樣本總集Xnew中的任意樣本R,若R∈Xmax[]j,則樣本的權(quán)重為:
式中:k[j]為Xmax[j]包含樣本的個(gè)數(shù);∑k[i]為所有樣本的個(gè)數(shù)。
若R∈Xmin[]j,則樣本的權(quán)重為:
式中:k[j]為Xmin[j]包含樣本的個(gè)數(shù);∑k[i]為所有樣本的個(gè)數(shù)。
(4)對(duì)基分類器進(jìn)行訓(xùn)練
IB為使用Bagging算法從新樣本集Xnew抽取的樣本,OB為未抽取的樣本,用IB進(jìn)行基分類器的訓(xùn)練,用OB對(duì)基分類器進(jìn)行測(cè)試,測(cè)試結(jié)果作為每個(gè)基分類器的權(quán)重w,再以此為基礎(chǔ)進(jìn)行投票,即可確定分類結(jié)果。
為了驗(yàn)證Bagging改進(jìn)算法的性能,選用接受者操作特性曲線(receiver operating characteristic curve,ROC曲線)下的面積(AUC)作為評(píng)價(jià)指標(biāo)[17]。使用UCI中的不平衡類數(shù)據(jù)集Pima-Indians-Diabetes作為測(cè)試數(shù)據(jù),Bagging算法的AUC=0.798,而Bagging改進(jìn)算法的AUC=0.948,測(cè)試結(jié)果如圖1所示。由圖可知Bagging改進(jìn)算法總體上表現(xiàn)出了良好的性能,X值從0.3開始,Y值幾乎就達(dá)到了最佳并一直保持。由此可知,基于SMOTE的Bag-ging改進(jìn)算法可以平衡少數(shù)類樣本與多數(shù)類樣本之間的差距,提高兩者的平衡性,利用Bagging算法使用加權(quán)的形式進(jìn)行集成,可以同時(shí)保證整體和少數(shù)類分類的分類精度。
圖1 Pima-Indians-Diabetes數(shù)據(jù)集ROC曲線
變壓器發(fā)生故障前往往會(huì)伴隨一段放電或放熱的過程,變壓器油會(huì)溶解釋放出氫氣、甲烷、乙烷、乙烯、乙炔等5種特征氣體,根據(jù)變壓器正常狀態(tài)和發(fā)生故障時(shí)5種特征氣體的含量會(huì)發(fā)生改變的特點(diǎn),通過對(duì)各氣體成分含量的分析就可判斷變壓器故障。變壓器的故障類別可以分為:(1)局部放電;(2)低能放電;(3)低能放電及過熱;(4)電弧放電;(5)電弧放電及過熱;(6)無故障;(7)低溫過熱;(8)中溫過熱;(9)高溫過熱。
圖2 Bagging改進(jìn)算法的流程原理圖
對(duì)變壓器故障診斷來說,數(shù)據(jù)樣本選取的合理性與故障預(yù)測(cè)正確率高低有密切聯(lián)系,數(shù)據(jù)樣本選取后,首先要對(duì)數(shù)據(jù)進(jìn)行處理,以便建立可靠的訓(xùn)練模型。然后按照基于SMOTE的Bagging改進(jìn)算法的步驟對(duì)數(shù)據(jù)樣本進(jìn)行訓(xùn)練、分類并最終確定結(jié)果。Bagging改進(jìn)算法的流程原理圖如圖2所示。
利用Matlab將分類標(biāo)簽以及輸入數(shù)據(jù)矩陣分開,把數(shù)據(jù)樣本導(dǎo)入生成一張數(shù)據(jù)表格,對(duì)訓(xùn)練及預(yù)測(cè)數(shù)據(jù)樣本集劃分,將故障類別數(shù)據(jù)樣本中的每一種故障樣本數(shù)據(jù)劃分成訓(xùn)練集和預(yù)測(cè)集兩部分,再將兩者分別重新組合在一起形成新的訓(xùn)練集和預(yù)測(cè)集,最后對(duì)數(shù)據(jù)采用X=normr(X)進(jìn)行歸一化預(yù)處理,使數(shù)據(jù)庫中數(shù)據(jù)的行或列標(biāo)準(zhǔn)化。
本文以變壓器油中氣體含量的差異作為故障類別判斷的依據(jù),以文獻(xiàn)[12]中的原始數(shù)據(jù)作為樣本集,60%的數(shù)據(jù)用于訓(xùn)練集,40%用于測(cè)試集。180個(gè)故障樣本,將其中的105個(gè)樣本作為訓(xùn)練集,余下75個(gè)樣本作為測(cè)試集。
運(yùn)用Bagging改進(jìn)算法對(duì)所選取的105個(gè)訓(xùn)練樣本進(jìn)行訓(xùn)練學(xué)習(xí),其中弱分類器包含神經(jīng)網(wǎng)絡(luò)和k近鄰、支持向量機(jī)、貝葉斯分類等。仿真模型運(yùn)用Matlab集成學(xué)習(xí)工具箱中的fitcensemble 實(shí) 現(xiàn) , 其 中 :“goodResults={′TotalBoost′,′RUSBoost′,...,′LPBoost′,′AdaBoostM2,′Bag′;Mdl=fitcensemble(X,Y,′Method,′Bag,..′NumLearningCycles′,500,′Learners′,t)”。
圖3 迭代曲線
建立Bagging的預(yù)測(cè)模型時(shí),首先對(duì)樣本數(shù)據(jù)進(jìn)行500次的交叉驗(yàn)證學(xué)習(xí),使得到的結(jié)果能夠達(dá)到最佳訓(xùn)練效果,預(yù)測(cè)精確趨近理想值,迭代曲線如圖3所示。
對(duì)75組測(cè)試樣本集,9種故障類別進(jìn)行預(yù)測(cè)仿真試驗(yàn),為了便于圖形的可視化效果,對(duì)預(yù)測(cè)結(jié)果進(jìn)行可視化處理,如圖4所示。從圖中可以看出,75組測(cè)試樣本中,僅有7組樣本的預(yù)測(cè)結(jié)果與實(shí)際結(jié)果不符,且集中在低溫過熱、中溫過熱和高溫過熱3種故障狀態(tài),其余故障狀態(tài)則能夠?qū)崿F(xiàn)100%的準(zhǔn)確預(yù)測(cè)。
圖4 Bagging改進(jìn)算法的變壓器故障預(yù)測(cè)分類圖
為了證明Bagging改進(jìn)算法的性能,本文選取同一組樣本集,同時(shí)用 TotalBoost,RUSBoost,LPBoost,AdaBoostM2 等Boosting衍生算法以及單分類器構(gòu)成的SVMonly、BP神經(jīng)網(wǎng)絡(luò)和Bagging幾種方法進(jìn)行故障診斷預(yù)測(cè)精度比較試驗(yàn),結(jié)果如表1所示。
表1 多種方法的故障診斷預(yù)測(cè)精度比較
從表中很容易看出,BP神經(jīng)網(wǎng)絡(luò)和單分類器SVMonly的預(yù)測(cè)精度最差,這也說明了變壓器故障診斷難以建立精確的數(shù)學(xué)模型,使用單一分類器很難取得良好的預(yù)測(cè)效果,必須使用集成算法提高預(yù)測(cè)精度。從表中還可以看出,在同樣的預(yù)測(cè)條件下,Bagging算法與Boosting算法性能基本接近,預(yù)測(cè)精度在84%~86.3%的區(qū)間范圍內(nèi),說明了集成算法在變壓器故障診斷中具有優(yōu)越性,預(yù)測(cè)精度較高。
本文提出的Bagging改進(jìn)算法通過增加少數(shù)類樣本數(shù)量,減少少數(shù)類與多數(shù)類的不平衡性,調(diào)用弱學(xué)習(xí)算法完成對(duì)樣本集的訓(xùn)練得到強(qiáng)學(xué)習(xí)機(jī),利用強(qiáng)學(xué)習(xí)機(jī)作為變壓器故障診斷模型,將多個(gè)弱分類器集成為強(qiáng)分類器,通過對(duì)模型的反復(fù)學(xué)習(xí)來提高集成模型的預(yù)測(cè)精度,提取數(shù)列具有的深層規(guī)律特征,以完成待診斷記錄的故障判別。仿真實(shí)驗(yàn)得出Bagging改進(jìn)算法的預(yù)測(cè)精度達(dá)到90.67%,超過其他幾種方法,驗(yàn)證了此方法有較好的適應(yīng)性和較高的診斷率,同時(shí)也證明了該算法的準(zhǔn)確性和有效性。
(1)本文提出的Bagging改進(jìn)算法使分類器的分類平面向多數(shù)類空間伸展,在一定程度上避免了分類器過度擬合,可以同時(shí)保證整體分類和少數(shù)類分類的準(zhǔn)確度;
(2)針對(duì)變壓器故障前后階段油液中5類特征氣體容量不同的特點(diǎn),應(yīng)用本文提出的Bagging改進(jìn)算法進(jìn)行變壓器油中氣體故障判別,具有較好的魯棒性與泛化能力,故障診斷精度高;
(3)不同方法的變壓器故障診斷實(shí)驗(yàn)表明,本文提出的Bagging改進(jìn)算法預(yù)測(cè)精度優(yōu)于BP神經(jīng)網(wǎng)絡(luò)方法和單分類器的SVM only,也優(yōu)于幾種Boosting的衍生算法和經(jīng)典的Bagging算法,其性能更加穩(wěn)定可靠。