楊 鮮,趙計(jì)生,強(qiáng)保華*,米路中,彭 博,唐成華,李寶蓮
(1.廣西圖像圖形與智能處理重點(diǎn)實(shí)驗(yàn)室(桂林電子科技大學(xué)),廣西桂林 541004;2.北京華電天仁電力控制技術(shù)有限公司,北京 100039;3.中國(guó)電子科技集團(tuán)公司第54研究所,石家莊 050081)
(?通信作者電子郵箱qiangbh@guet.edu.cn)
隨著風(fēng)機(jī)設(shè)備可靠性的不斷提高,設(shè)備出現(xiàn)故障的概率逐漸變小,導(dǎo)致了風(fēng)機(jī)運(yùn)行數(shù)據(jù)集中很大比例都是正常運(yùn)行的樣本數(shù)據(jù),而出現(xiàn)故障的樣本數(shù)據(jù)比例非常小,從而使數(shù)據(jù)集不均衡。不均衡的數(shù)據(jù)集會(huì)對(duì)風(fēng)機(jī)部件故障檢測(cè)[1]的效果產(chǎn)生負(fù)面的影響,分類結(jié)果往往都會(huì)偏向于大類樣本。因此在建立分類模型之前,如何對(duì)風(fēng)機(jī)數(shù)據(jù)集進(jìn)行處理[2-3],消除由不平衡性帶來(lái)的負(fù)面影響尤為重要。
針對(duì)不平衡數(shù)據(jù)集通常使用抽樣方法對(duì)其進(jìn)行改善,常見(jiàn)的解決方法主要有欠采樣和過(guò)采樣兩種方式,其核心分別是通過(guò)合理地減少大類樣本數(shù)量和增加小類樣本數(shù)量,以期獲得一個(gè)較為平衡的數(shù)據(jù)集。目前國(guó)內(nèi)外學(xué)者對(duì)抽樣方法的研究主要有:Chawla 等[4]提出在少數(shù)類樣本之間進(jìn)行插值產(chǎn)生額外樣本的SMOTE(Synthetic Minority Oversampling Technique)算法,該算法可能導(dǎo)致樣本之間的重疊,生成一些沒(méi)有提供有效信息的樣本,降低分類性能;Han 等[5]在SMOTE算法基礎(chǔ)上進(jìn)行改進(jìn)提出BSMOTE(Borderline Synthetic Minority Oversampling Technique),該算法僅對(duì)邊界上的少數(shù)類樣本合成新樣本,減少了未提供有效信息的樣本被合成的可能性,但選擇樣本時(shí)未考慮數(shù)據(jù)集的時(shí)序規(guī)律,且未對(duì)噪聲類樣本進(jìn)行過(guò)濾;Bunkhumpornpat 等[6]提出一種根據(jù)每個(gè)少數(shù)類樣本安全等級(jí)來(lái)決定是否過(guò)采樣的Safe-level SMOTE 算法;劉余霞等[7]為了避免過(guò)擬合問(wèn)題,提出了一種基于正例樣本子簇簇心距離為標(biāo)準(zhǔn)的過(guò)采樣算法;陳睿等[8]提出了一種基于BSMOTE 和逆隨機(jī)欠抽樣算法的不均衡數(shù)據(jù)分類算法;Devi 等[9]通過(guò)歐氏距離提出了一種清理噪聲樣本、重疊樣本的欠采樣算法Tomek-link,該算法通過(guò)減少多數(shù)類樣本來(lái)達(dá)到類別平衡,可能使數(shù)據(jù)集太少導(dǎo)致分類器學(xué)習(xí)不充分;Georgios 等[10]提出了一種k-means 聚類與SMOTE 相結(jié)合的采樣算法,解決類間不平衡問(wèn)題的同時(shí)避免產(chǎn)生大量噪聲樣本,但k-means 聚類與SMOTE 算法都是基于歐氏距離的,沒(méi)有考慮數(shù)據(jù)集的時(shí)序規(guī)律;夏英等[11]提出了一種基于層次聚類的不均衡數(shù)據(jù)加權(quán)過(guò)采樣算法WOHC(Weighted Oversampling method based on Hierarchical Clustering),該算法根據(jù)簇類密度因子決定采樣倍率N;李克文等[12]對(duì)SMOTE 算法進(jìn)行改進(jìn)提出基于歐氏距離度量的SDRSMOTE(Support Degree Random Synthetic Minority Oversampling TEchnique)算法;魏力等[13]結(jié)合NearMiss 和k-means 算法提出了一種Clustering-Based NearMiss欠采樣算法,根據(jù)歐氏距離作為相似性依據(jù)來(lái)進(jìn)行欠采樣,可能因數(shù)據(jù)集太少導(dǎo)致分類器學(xué)習(xí)不充分。
以上處理不平衡數(shù)據(jù)集的算法在考慮對(duì)哪些樣本進(jìn)行采樣時(shí),核心思路要么是隨機(jī)選擇少數(shù)類樣本,要么是基于聚類、歐氏距離選擇少數(shù)類樣本。這兩種選擇思路并不完全適用于具有時(shí)序特點(diǎn)的風(fēng)機(jī)數(shù)據(jù):一方面是會(huì)破壞風(fēng)機(jī)數(shù)據(jù)集的時(shí)序特點(diǎn)[14],丟失風(fēng)機(jī)從正常狀態(tài)變?yōu)楣收蠣顟B(tài)的信息;另一方面是未對(duì)類間重疊樣本、噪聲類樣本進(jìn)行過(guò)濾容易導(dǎo)致模型過(guò)擬合,從而降低分類精度。因此,本文提出了一種基于改進(jìn)的BSMOTE 和時(shí)序特征的風(fēng)機(jī)故障采樣算法BSMOTESequence(Borderline Synthetic Minority Oversampling Technique-Sequence),在新樣本合成時(shí)綜合考慮了風(fēng)機(jī)數(shù)據(jù)的時(shí)序規(guī)律和時(shí)空度,并且對(duì)噪聲類樣本、類間重疊樣本進(jìn)行了過(guò)濾,形成清晰決策邊界。具體工作如下:
1)針對(duì)BSMOTE算法隨機(jī)選擇少數(shù)類樣本點(diǎn)參與合成新樣本的問(wèn)題,采用風(fēng)機(jī)數(shù)據(jù)的時(shí)序特征來(lái)解決。該方式生成的新樣本綜合考慮了空間距離、時(shí)間跨度,能有效減少噪聲點(diǎn)的生成。
2)針對(duì)BSMOTE 算法合成新樣本時(shí)可能產(chǎn)生噪聲點(diǎn)、類間重疊樣本,進(jìn)而導(dǎo)致模型過(guò)擬合等問(wèn)題,采用Tomek Links技術(shù)進(jìn)行過(guò)濾處理,對(duì)后續(xù)模型的訓(xùn)練效率、分類效果有一定改善。
在真實(shí)的風(fēng)機(jī)數(shù)據(jù)上將本文方法與已有的采樣方法進(jìn)行對(duì)比,使用支持向量機(jī)(Support Vector Machine,SVM)、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)、長(zhǎng)短期記憶(Long Short-Term Memory,LSTM)人工神經(jīng)網(wǎng)絡(luò)[15-16]作為風(fēng)機(jī)齒輪箱故障檢測(cè)模型[17],F(xiàn)1-Score、曲線下面積(Area Under Curve,AUC)、G-mean 作為模型性能評(píng)價(jià)指標(biāo),驗(yàn)證了所提采樣策略在檢測(cè)風(fēng)機(jī)故障上的有效性。
1.1.1 BSMOTE算法基本思想
Han 等[5]提出的BSMOTE 算法基本思想是對(duì)每個(gè)處于邊界上的少數(shù)類樣本,通過(guò)K最近鄰(K-Nearest Neighbor,KNN)算法選出K'個(gè)少數(shù)類近鄰樣本,然后從這K'個(gè)樣本中隨機(jī)選擇K"個(gè)樣本,輪流與該少數(shù)類樣本合成新樣本。假設(shè)原始訓(xùn)練樣本為D,其中少數(shù)類為P,多數(shù)類為N,具體步驟描述如下:
1)計(jì)算每個(gè)少數(shù)類樣本p(i)與D中所有其他樣本的歐氏距離,獲得該樣本點(diǎn)的K個(gè)近鄰樣本。
2)對(duì)少數(shù)類樣本p(i)進(jìn)行分類。設(shè)K個(gè)近鄰樣本中多數(shù)類樣本所占比例為r。若0 ≤r≤0.5,則p(i)是安全類樣本;若0.5 <r<1,則p( i)是邊界類樣本;若r=1,則該p( i)是噪聲類樣本。
3)計(jì)算p(i)與P中所有其他少數(shù)類樣本的K'個(gè)近鄰,再?gòu)腒'個(gè)近鄰中隨機(jī)選擇K"個(gè)與p(i)合成新的少數(shù)類樣本。
該算法在合成新樣本時(shí)沒(méi)有考慮數(shù)據(jù)集的時(shí)序特點(diǎn),且沒(méi)有對(duì)類間重疊樣本、噪聲類樣本進(jìn)行過(guò)濾,沒(méi)有一條清晰的分類邊界,對(duì)后期模型分類性能有一定影響。
1.1.2 BSMOTE-Sequence算法模型
針對(duì)BSMOTE 算法的問(wèn)題,本文根據(jù)數(shù)據(jù)集特點(diǎn)提出了一種BSMOTE-Sequence 算法。該算法合成新樣本時(shí),首先標(biāo)記出邊界上的少數(shù)類樣本x,然后根據(jù)空間距離、時(shí)間跨度規(guī)則選出x的少數(shù)類近鄰樣本集合L,再利用線性插值法合成新樣本,最后過(guò)濾掉噪聲類樣本、類間重疊樣本。該算法改進(jìn)了原算法選點(diǎn)時(shí)的規(guī)則,關(guān)注了時(shí)序數(shù)據(jù)在變化過(guò)程中包含的關(guān)鍵信息,對(duì)后續(xù)故障預(yù)測(cè)有一定幫助;同時(shí)增加了過(guò)濾類間重疊樣本和噪聲類樣本的過(guò)程,可以提高合成樣本的可靠性,排除噪聲點(diǎn)干擾,提升決策邊界的清晰度,為得到良好分類器提供了數(shù)據(jù)保障。主要有兩點(diǎn)改進(jìn):
1)將原算法隨機(jī)選擇少數(shù)類樣本點(diǎn)參與合成新樣本的步驟,改進(jìn)為按照式(1),根據(jù)樣本的時(shí)序特征,計(jì)算樣本間的時(shí)間跨度,選出跨度最小的K"個(gè)少數(shù)類樣本點(diǎn),按照式(2)參與合成新樣本,效果如圖1(c)所示。
圖1 BSMOTE-Sequence算法效果Fig.1 Effect of BSMOTE-Sequence algorithm
通過(guò)該方式生成的新樣本綜合考慮了空間距離、時(shí)間跨度,合成的樣本具有一定可靠性,避免合成噪聲類樣本。
2)在合成完新樣本后,按照式(3)~(5),增加過(guò)濾類間重疊樣本的過(guò)程,若不存在其他任意樣本d(k)使得式(3)~(4)成立,則p( i)與n( j)互為最近鄰樣本,需要過(guò)濾掉n( j)。再根據(jù)每個(gè)樣本點(diǎn)周圍的樣本類別比例,增加過(guò)濾噪聲類樣本的過(guò)程,若某個(gè)樣本點(diǎn)周圍的樣本全是與其類別相反的樣本,則該樣本點(diǎn)是噪聲類樣本,需要被過(guò)濾掉,效果如圖1(d)、(e)。
其中:p( i)代表某個(gè)少數(shù)類樣本;n(j)代表某個(gè)多數(shù)類樣本;d(k)代表某個(gè)其他任意樣本;dist(p(i),d(k))表示樣本p(i)與d(k)之間的歐氏距離。
增加該過(guò)程能排除噪聲點(diǎn)干擾,提升決策邊界的清晰度,對(duì)后續(xù)模型的訓(xùn)練效率及分類效果均有一定改善。
如圖2所示,BSMOTE-Sequence算法流程如下:
圖2 BSMOTE-Sequence算法流程Fig.2 Flow chart of BSMOTE-Sequence algorithm
①對(duì)少數(shù)類樣本集P中的每個(gè)樣本p(i),按照式(5)計(jì)算它到其他所有樣本d(j)的歐氏距離,選出距離最近的K個(gè)樣本{d(1),d(2),…,d(K)}。
②設(shè){d(1),d(2),…,d(K)}中有Np(i)個(gè)多數(shù)類樣本,按照式(6)、(7)計(jì)算比例r、判斷p(i)的類型Cp(i)。
Cp(i)取0、1、-1 時(shí)分別表示p(i)樣本是安全類樣本、邊界類樣本、噪聲類樣本。
③對(duì)于每個(gè)Cp(i)=1的p(i)樣本,按照式(5)計(jì)算它到其他所有少數(shù)類樣本p(j)的歐氏距離,選出空間距離最近的K'個(gè)樣本{p(1),p(2),…,p(K')}。
④從{p(1),p(2),…,p(K')}中按照式(1),選出時(shí)間跨度最小的K"個(gè)樣本{p(1),p(2),…,p(K")}。
⑤按照式(2)在p(i)樣本與{p(1),p(2),…,p(K")}各樣本之間合成新樣本點(diǎn){p(i,1),p(i,2),…,p(i,K")}。
⑥將第⑤步中合成的所有新樣本點(diǎn)加入到少數(shù)類樣本集P中。
⑦按照式(5)對(duì)P中的每個(gè)樣本p(i),計(jì)算它到每個(gè)多數(shù)類樣本n(j)的距離dist(p(i),n( j))。
⑧若不存在任意其他樣本點(diǎn)d(k),使得式(3)或者式(4)成立,則稱(p(i),n( j))是一個(gè)Tomek Links 對(duì),從每個(gè)Tomek Links對(duì)中刪除多數(shù)類樣本點(diǎn)。
⑨按照式(6)、(7)計(jì)算每個(gè)樣本周圍的樣本類別比例,可找出噪聲類樣本并刪除。
BSMOTE-Sequence 算法的偽代碼見(jiàn)算法1,輸入的是類別不平衡數(shù)據(jù)集D,其中N表示多數(shù)類樣本集,P表示少數(shù)類樣本集。該算法主要有兩大步驟:1)第一個(gè)for 循環(huán)(偽代碼第1)行處)是找出滿足條件的邊界少數(shù)類樣本點(diǎn),與它周圍的部分少數(shù)類樣本點(diǎn)合成新樣本;2)第二個(gè)for 循環(huán)(偽代碼第11)行處)是過(guò)濾掉類間重疊樣本、噪聲類樣本。
算法1 BSMOTE-Sequence。
輸入 樣本集D,多數(shù)類樣本集N?D,少數(shù)類樣本集P?D;
輸出 樣本集D'。
本次實(shí)驗(yàn)中所用數(shù)據(jù)集均來(lái)自云南某風(fēng)電廠歷史運(yùn)行數(shù)據(jù),如表1 所示。訓(xùn)練集有691 160 條記錄,正負(fù)樣本比例為3∶7。測(cè)試集有24 116 條記錄,正負(fù)樣本比例為4∶6。訓(xùn)練集與測(cè)試集都有18 個(gè)特征,分別是時(shí)間、齒輪箱潤(rùn)滑油濾網(wǎng)出口壓力、齒輪箱油溫、機(jī)艙柜溫度、U1 項(xiàng)繞組電壓、U2 項(xiàng)繞組電壓、U3 項(xiàng)繞組電壓、U1 項(xiàng)繞組電流、U2 項(xiàng)繞組電流、U3 項(xiàng)繞組電流、發(fā)電機(jī)冷卻溫度、發(fā)電機(jī)滑環(huán)溫度、發(fā)電機(jī)轉(zhuǎn)速、葉輪轉(zhuǎn)速、風(fēng)速1、風(fēng)速2、風(fēng)向1、風(fēng)向2。
表1 數(shù)據(jù)集信息Tab.1 Information of datasets
為了驗(yàn)證BSMOTE-Sequence 算法在處理不平衡風(fēng)機(jī)數(shù)據(jù)集中對(duì)齒輪箱故障檢測(cè)任務(wù)的有效性,分別使用SVM、CNN、LSTM作為故障檢測(cè)算法,與未處理、BSMOTE、ADASYN(adaptive synthetic sampling)、Tomek Links、SMOTE+ENN(Edited Nearest Neighbor)、SMOTE+Tomek Links 算法進(jìn)行對(duì)比實(shí)驗(yàn)。
評(píng)估分類模型的性能主要是基于混淆矩陣,它便于觀察模型在各個(gè)類別上的表現(xiàn)。以二分類任務(wù)為例,表2 是其對(duì)應(yīng)的混淆矩陣。其中:TP(True Positive)表示預(yù)測(cè)為正且真實(shí)為正的樣本個(gè)數(shù);FP(False Positive)表示預(yù)測(cè)為正但真實(shí)為負(fù)的樣本個(gè)數(shù);FN(False Negative)表示預(yù)測(cè)為負(fù)但真實(shí)為正的樣本個(gè)數(shù);TN(True Negative)表示預(yù)測(cè)為負(fù)且真實(shí)為負(fù)的樣本個(gè)數(shù)。
表2 混淆矩陣Tab.2 Confusion matrix
分類器性能評(píng)價(jià)標(biāo)準(zhǔn)有很多,如準(zhǔn)確率(Accuracy,Acc)、精確率(Precision,P)、查全率(Recall,R)、F1-Score(F1)、受試者工作特征(Receiver Operator Characteristic,ROC)曲線、AUC、G-mean 等,然而對(duì)于不平衡數(shù)據(jù)集如果使用單一的準(zhǔn)確率、精確率、召回率等指標(biāo)是不合適的,因?yàn)樗鼰o(wú)法有效地反映對(duì)少數(shù)類的分類性能。故實(shí)驗(yàn)使用F1-Score[18]、AUC、G-mean[19-20]作為評(píng)價(jià)指標(biāo),這些指標(biāo)能綜合衡量分類性能。
F1-Score(F1)是常用來(lái)衡量二分類模型的一種評(píng)價(jià)指標(biāo),由于它是精確率和召回率的調(diào)和平均,所以能同時(shí)對(duì)模型的精確率和召回率進(jìn)行綜合衡量,對(duì)類別不平衡的數(shù)據(jù)集非常有效。在不平衡數(shù)據(jù)集的分類任務(wù)中,只有當(dāng)精確率與查全率都比較大時(shí),F(xiàn)1才會(huì)較大,否則其值會(huì)接近其中較小者,如式(8)所示。其中,P是精確率,表示在被預(yù)測(cè)為正的樣本中真實(shí)結(jié)果為正的樣本的比率,如式(9)所示;R是查全率,表示在真實(shí)結(jié)果為正的樣本中被預(yù)測(cè)為正的樣本的比率,如式(10)所示。
AUC 為ROC 下的面積,其數(shù)值不會(huì)大于1。ROC 曲線是由假正例率(False Positive Rate,F(xiàn)PR)作橫軸,真正例率(True Positive Rate,TPR)作縱軸繪制而成,其中FPR 是在真實(shí)結(jié)果為負(fù)的樣本中被預(yù)測(cè)為正的樣本的比率,如式(11)所示;TPR 是在真實(shí)結(jié)果為正的樣本中被預(yù)測(cè)為正的樣本的比率,如式(12)所示。AUC面積能不受類別分布的影響,有效地評(píng)估、比較類別分布不平衡的數(shù)據(jù)集。
G-mean 指標(biāo)可衡量分別有多少正例、負(fù)例被成功預(yù)測(cè)出來(lái),其數(shù)值不會(huì)大于1,如式(13)所示,其中specificity是特異性,如式(14)所示。
將BSMOTE-Sequence 算法與原始數(shù)據(jù)直接分類、BSMOTE、ADASYN、Tomek Links、SMOTE+ENN、SMOTE+Tomek Links 等算法進(jìn)行對(duì)比實(shí)驗(yàn),分類器采用SVM、CNN、LSTM。BSMOTE 算法中的采樣倍率N等于不平衡率IR×0.5并上取整,最近鄰閾值K等于N×3。ADASYN 算法中的合成系數(shù)β等于1。Tomek Links 算法中的移除類間重疊樣本策略設(shè)置為僅移除多數(shù)類樣本。SMOTE+ENN 算法中的ENN 樣本剔除策略設(shè)置為若多數(shù)類樣本其K個(gè)近鄰點(diǎn)中有超過(guò)一半不屬于多數(shù)類,則剔除該多數(shù)類樣本。為了消除隨機(jī)因素的影響,每個(gè)算法都取20 次實(shí)驗(yàn)的結(jié)果,計(jì)算F1-Score、AUC、G-mean 的平均值,平均值越大表明分類效果越好。不同算法的實(shí)驗(yàn)結(jié)果如表3所示。
表3 不同采樣算法的F1-Score、AUC、G-mean比較 單位:%Tab.3 Comparison of F1-Score,AUC and G-mean of different sampling algorithms unit:%
由表3 中的實(shí)驗(yàn)結(jié)果可以分析出以下結(jié)論:1)BSMOTESequence 算法相較于其他算法,在F1-Score、AUC、G-mean 上都有一定提升。2)僅使用Tomek Links 欠采樣技術(shù)處理風(fēng)機(jī)數(shù)據(jù)集,會(huì)丟失重要的特征信息,導(dǎo)致分類模型效果不佳,所以其F1-Score 最低。雖然它的AUC 不是最低,但對(duì)于不平衡數(shù)據(jù)集來(lái)說(shuō)F1-Score比AUC更敏感。3)在處理不平衡數(shù)據(jù)集時(shí),并非所有采樣算法都適合,有時(shí)可能會(huì)適得其反,所以需要具體分析數(shù)據(jù)集的特點(diǎn),選擇合適的采樣算法,才能提高模型分類性能。4)SVM 分類效果不如CNN 和LSTM,因?yàn)镾VM是傳統(tǒng)機(jī)器學(xué)習(xí)算法,需要做更多的特征工程、優(yōu)化模型參數(shù)等操作來(lái)提高分類效果。5)LSTM 的分類效果比CNN 好,因?yàn)長(zhǎng)STM 能從時(shí)序數(shù)據(jù)中捕捉到重要的特征并進(jìn)行關(guān)聯(lián)建模,對(duì)時(shí)序特征的提取更充分,這也進(jìn)一步驗(yàn)證了在對(duì)時(shí)序數(shù)據(jù)集進(jìn)行不平衡處理時(shí)考慮時(shí)序規(guī)律的重要性。
從整體來(lái)看,BSMOTE-Sequence 算法的性能是優(yōu)于其他對(duì)比算法的,這是由于該采樣算法充分結(jié)合了風(fēng)機(jī)數(shù)據(jù)集的時(shí)序特點(diǎn),并且只對(duì)邊界少數(shù)類樣本點(diǎn)進(jìn)行過(guò)采樣,而不是全部少數(shù)類,最后還對(duì)類間重疊樣本、噪聲樣本進(jìn)行過(guò)濾,既避免了模型過(guò)擬合及丟失重要特征信息,又能有效地改善風(fēng)機(jī)數(shù)據(jù)集的不平衡性,從而提升了模型的分類效果。
本文針對(duì)風(fēng)機(jī)數(shù)據(jù)集不平衡問(wèn)題,采用數(shù)據(jù)挖掘領(lǐng)域重構(gòu)數(shù)據(jù)集的思路,結(jié)合數(shù)據(jù)集的時(shí)序特點(diǎn),提出了一種BSMOTE-Sequence 采樣算法。該算法優(yōu)點(diǎn)如下:1)基于數(shù)據(jù)集的特點(diǎn),充分利用風(fēng)機(jī)數(shù)據(jù)時(shí)序規(guī)律,生成合理的新樣本,在一定程度上提高了對(duì)不平衡數(shù)據(jù)集的分類性能;2)對(duì)類間重疊樣本、噪聲類樣本進(jìn)行過(guò)濾,避免錯(cuò)誤分類的負(fù)面影響;3)該算法采用了過(guò)采樣、欠采樣技術(shù),避免了單獨(dú)使用某種采樣方法帶來(lái)的問(wèn)題;4)用SVM、CNN、LSTM三種分類器作為齒輪箱故障檢測(cè)模型來(lái)系統(tǒng)地驗(yàn)證BSMOTE-Sequence算法的有效性。從實(shí)驗(yàn)結(jié)果可以看出,對(duì)風(fēng)機(jī)不平衡數(shù)據(jù)集而言,本文所提出的BSMOTE-Sequence算法性能普遍優(yōu)于其他數(shù)據(jù)采樣方法,為處理風(fēng)機(jī)不平衡數(shù)據(jù)集提供了一種可行的新思路。