李文君子 王夢沈
摘 要:DGA技術能夠及時探查到充油型設備在使用過程中不易發現的隱性問題,k近鄰算法是一種惰性分類算法,但是單一故障診斷算法準確性無法滿足實際工程需求。為了提高變壓器故障診斷精確性,本文用Adaboost算法對k近鄰算法進行提升,并對Adaboost算法進行延伸,從而發展出了Adaboost.M2-kNN算法,能夠處理多類分類任務。試驗發現利用Adaboost.M2-kNN算法能夠有效提高變壓器故障診斷的準確性,該方法逐步應用于工程實踐中。
關鍵詞:變壓器;kNN算法;Adaboost算法;故障診斷;實例分析
DOI:10.16640/j.cnki.37-1222/t.2018.22.117
1 引言
在Boosting的基礎上誕生了Adaboost算法,而Boosting的理論框架則是從機器學習模型PAC中發展而來到。由于Adaboost算法只能用來應對二分類的問題,因此本文利用Adaboost的擴展算法Adaboost.M2來解決多分類問題。
2 Adaboost.M2-kNN算法
2.1 Adaboost.M2的基本原理
Adaboost.M2屬于軟分類的一種形式,在輸入樣本(xi,yi)后,當y不等于yi時,ht弱分類器就會根據(k-1)的順序進行詢問,通過偽誤差的方法來重新調整分類器。首先選擇大小為m的訓練集,S={(xi,yi),(x2,y2),...,(xm,ym)}進行輸入,而x可以是訓練空間中的任何訓練例子,也可以由多種屬性值組成。而y則是和x對稱的類別標簽。同時在每輪循環中,都要調整弱學習器,當循環到第t輪時,弱學習器就會針對訓練樣本D進行分類計算,從而得出弱假設ht,在進行t輪循環后,進行加權投票,能夠在全部的弱假設h中得出最終結果hfin。
2.2 Adaboost.M2算法的誤差
強分類器Adaboost.M2中的訓練誤差是:
在上列公式中,=0.5-。從公式中可以看出,當弱假設的準確率高于隨機猜測時,訓練的誤差就會通過指數的方式快速降低,能夠提升分類的準確性[1]。
2.3 Adaboost.M2-kNN算法的具體流程
以Adaboost.M2-kNN算法為基礎的弱學習器,建立針對變壓器故障問題的診斷模型。根據變壓器的本來的數據衍生出數量為m的訓練樣本,Trs={(xi,yi),(x2,y2),...,(xm,ym)},而x則是訓練空間中的任意數據,由數個值組成。故障類別標簽yi屬于{1,2,...k}中的任意值,其中k是故障類型,而i則是樣本代號,訓練樣本分布為定義D,弱學習器個數用T來顯示,也就是迭代次數。
3 變壓器故障實例診斷分析
3.1 參數選擇
在變壓器剛開始出現故障的時候會產生出一些氣體,而這些氣體和故障的性質聯系較為密切[2]。為此首先需要選擇原始屬性數據,例如可以選擇C2H2、C2H4、C2H6、CH4、H2這五種典型氣體。由于不同成分之間的含量具有較大的差異性,因此要將溶解氣體進行歸一化處理,從而保證其數值都在[-1,1]內,從而充當樣本中的屬性值。同時為變壓器的故障類別進行編號,將正常狀態設置為1號,將中溫設置為2號,將高溫狀態設置為3號,以此類推,包括局部放電、電弧放電以及火花放電,一直到6號。Adaboost.M2-kNN算法的循環次數最大值T可以取值100,將kNN當作弱分類器,參數k=1,在建立Adaboost.M2故障診斷模型。
Adaboost.M2-kNN算法中將T的最大循環次數設為100,其中弱分類器用kNN來代替,將k的參數設為1,隨后建立相關模型。
3.2 實例分析
首先選擇測試樣本和訓練樣本,將288已知故障類型的變壓器溶解氣體數據作為Adaboost.M2模型中的測試樣本與訓練樣本[3]。在訓練樣本中,每種故障中都有三十組數據,剩下的一百組數據作為測試樣本。
實驗結果分析,以288組數據為初始數據,在進行歸一化后,通過一百組數據對Adaboost.M2模型操作訓練,利用一百組數據操作測試,最終結果發現以單一kNN算法為基礎進行計算的分類準確率是62%,同時利用Adaboost.M2算法進行診斷的正確率是89%,我們可以在分析后得到結果,發現正確率提高了27%左右。同時我們我們也可以發現,測試誤差與訓練誤差在故障診斷樣本中隨著迭代次數的提高而出現降低的顯示,隨著迭代次數的提高,訓練誤差幾乎趨近于零,同樣測試誤差也是如此[4]。測試誤差雖然在下降過程中出現過上升趨勢,但從整體來看,依然是以降低趨勢為主。通過實驗對比分析我們能夠得出一下結果,在訓練誤差值為零時,發現測試誤差呈現出整體上的降低趨勢,這一現象也符合了Adaboost算法的關于泛化誤差的相關研究結果。
目前在我國寧夏銀川的一個交流變電站中已經開始使用了本文中所闡述的以Adaboost.M2為基礎的模型,在這一模型之中,只需要設置迭代次數就可以,不需要擁有其他任何知識經驗,其中算法會自動調整模型內部的運行參數。和傳統故障診斷方式相比,Adaboost.M2模型的方法泛化能力更強一些,對于整體故障的識別率能夠有效提升21%,檢測效果較為精確[5]。
參考文獻:
[1]魏雪倩,黃新波.基于AdaBoost多分類算法變壓器故障診斷[J].西安工程大學學報,2016,30(02):207-211.
[2]黃新波,李文君子.采用遺傳算法優化裝袋分類回歸樹組合算法的變壓器故障診斷[J].高電壓技術,2016,42(05):1617-1623.
[3]劉景艷,王福忠.基于RBF神經網絡和自適應遺傳算法的變壓器故障診斷[J].武漢大學學報(工學版),2016,49(01):88-93.
[4]苑津莎,張利偉.基于互補免疫算法的變壓器故障診斷[J].電工技術學報,2015,30(24):67-75.
[5]呂忠,周強.基于遺傳算法改進極限學習機的變壓器故障診斷[J].高壓電器,2015,51(08):49-53.