劉冬冬
(中國電子科技集團公司第二十研究所 西安 710000)
高新技術(shù)在武器裝備中的應(yīng)用越發(fā)廣泛,因此武器裝備的故障檢測診斷和維修保障工作也更為重要[1~2]。武器裝備的故障具有很強的隱蔽性和隨機性,而目前的裝備故障檢測依賴種類多,通用性差,而且操作復(fù)雜的故障檢修設(shè)備,其自動化程度低,對工作環(huán)境要求苛刻,不能實現(xiàn)快速檢測[3]。針對裝備故障發(fā)生后的診斷與分析,國內(nèi)進行了很多研究,文獻[4]采用基于決策樹的方法來發(fā)現(xiàn)軍用裝備故障特征與故障點之間的關(guān)聯(lián),文獻[5]提出了一種適合飛機機電系統(tǒng)故障診斷的改進免疫算法,文獻[6]設(shè)計了一種基于虛擬儀器和BP神經(jīng)網(wǎng)絡(luò)技術(shù)的液壓系統(tǒng)遠程故障診斷系統(tǒng)。
武器裝備在服役過程中,對其穩(wěn)定性要求較高,不只是需要在故障發(fā)生后能快速診斷與檢修,也需要在運行過程中去實時檢測異常,防止發(fā)生大的故障導(dǎo)致硬件損壞。當(dāng)裝備有發(fā)生故障征兆時,其運行狀態(tài)參數(shù)也往往會發(fā)生變化,產(chǎn)生一些異常參數(shù)信息,因此,本文提出一種基于密度異常因子的異常檢測方法,針對采集的武器裝備運行數(shù)據(jù)集,計算數(shù)據(jù)在其近鄰中的密度,并建立起密度相似隊列。最終,根據(jù)密度相似隊列和數(shù)據(jù)點與其近鄰的密度差異,給出每個數(shù)據(jù)點一個異常因子值,武器裝備的檢修人員可以根據(jù)運行數(shù)據(jù)集中異常因子值較高的數(shù)據(jù)點快速定位和分析,確認裝備是否存在異?;蚬收?。
異常檢測是數(shù)據(jù)挖掘領(lǐng)域一個重要的研究領(lǐng)域,它是檢測其行為很不同于預(yù)期對象的過程,這種對象稱為異常點或孤立點[7]。而異常檢測又常被稱為離群點檢測,孤立點檢測或數(shù)據(jù)缺陷檢測。
圖1 異常點示意
異常點或孤立點是一個較復(fù)雜的概念,長期以來并沒有一個統(tǒng)一的定義。例如,統(tǒng)計學(xué)的觀點認為,異常點是關(guān)于數(shù)據(jù)集的概率分布模型中具有低概率的點[8];基于距離的觀點認為,異常點是數(shù)據(jù)集中與大多數(shù)點之間的距離大于某個閾值的對象[9];聚類學(xué)派的觀點則認為,異常點是不嚴格屬于任何簇的對象[10];而基于密度的觀點認為,異常點是具有最大局部孤立因子的對象[11]。這些對異常點概念的闡述都是從不同的側(cè)重點出發(fā),適用于某個具體的應(yīng)用情境。Hawkins提出了異常點最權(quán)威的定義:異常點是明顯偏離數(shù)據(jù)集中其他對象的數(shù)據(jù),使人猜測這些數(shù)據(jù)并非隨機偏差,而是產(chǎn)生于完全不同的機制[12]。
武器裝備的運行狀態(tài)數(shù)據(jù)中存在異常點,可能有兩方面的原因。第一,裝備存在某種故障,導(dǎo)致采集的數(shù)據(jù)中某些變量存在異常,該類異常需要被及時的檢測和分析,以便進行相應(yīng)的維修。第二,由于測量儀器的問題或者人為操作錯誤,所記錄下來的測量值會出現(xiàn)不正確的情況。該類情況雖不及第一種嚴重,但在目前的軍用研究領(lǐng)域,常常需要采集并存儲裝備的運行狀態(tài)數(shù)據(jù)進行分析建模,如進行武器裝備的效能評估[13],若數(shù)據(jù)集中存在異常點,則會影響后續(xù)的分析挖掘進程。
因此,無論異常點是由故障征兆產(chǎn)生還是測量失誤,都有及時檢測的價值和意義。然而,很多裝備的運行數(shù)據(jù)采集周期短,數(shù)量大,靠人工很難進行有效的分析與檢測,因此,構(gòu)建一種可以進行實時異常檢測和分析的算法是十分重要的。
針對武器裝備的運行狀態(tài)數(shù)據(jù)集進行異常檢測的需求,本文提出一種基于密度異常因子的異常檢測算法,大多數(shù)武器裝備的運行狀態(tài)數(shù)據(jù)或檢修數(shù)據(jù)都是具有多種屬性的數(shù)據(jù)集,其本質(zhì)都是在多維數(shù)據(jù)空間中的點。首先,針對多維數(shù)據(jù)集中的點,給出點的k-近鄰密度的定義如下:
定義1:對任意正整數(shù)k,一個點 p周圍的密度等于它到k個最近鄰點的平均距離的倒數(shù)。
式中:Nk(p)表示 p的k近鄰鄰域,dist是求兩點之間距離的運算符,median為取中值運算符。該定義可以較好地反應(yīng)出數(shù)據(jù)集中點的密集分布程度。
在點的k-近鄰密度的基礎(chǔ)上,給出算法的詳細步驟流程。
輸入:數(shù)據(jù)集D;任意正整數(shù)k;
輸出:數(shù)據(jù)集D中點的異常因子值。
算法描述:
步驟1:計算數(shù)據(jù)集D中點兩兩之間的距離并且確定出每個點的k-近鄰鄰域;然后根據(jù)式(1)計算出所有數(shù)據(jù)點的k-近鄰密度。對象間距離的量度有很多種,本文采用常用的歐幾里得距離。
步驟2:根據(jù)D中所有數(shù)據(jù)點的密度值構(gòu)建密度相似隊列(DSQ,Density-Similarity-Queue)。
式中:oi∈Nk(p),i=1,2,…,r,并且 r是 Nk(p)中點的個數(shù)。
假設(shè)X和Y是兩個非空數(shù)據(jù)集,且X∩Y=φ,則它們之間的k-密度差值可定義為
對于任意給定的x,x∈X,如果Y中存在點y使得Δkden(x,y)=Δkden(X,Y),則 x被稱為對于Y的密度相似近鄰。
因此,步驟2是一個反復(fù)計算的過程,DSQ(p)的初始值是{}p。在每次計算時,算法不斷從Nk(p)剩下的點中找到對于DSQ(p)的密度相似近鄰,并把找出的對象加到DSQ(p)中去。如果找到的對象不只一個,則根據(jù)事先排好的對象順序?qū)⑶罢呒拥紻SQ(p)中去。在每次計算完畢后,更新DSQ(p)信息后再進行下一次計算。當(dāng)Nk(p)中所有對象都被陸續(xù)加入到DSQ(p)后,該步驟結(jié)束。此時,對象p的密度相似隊列構(gòu)建完畢。采用同樣的方法,算法可以完成對D中所有對象的密度相似隊列的構(gòu)建。
步驟3:基于步驟2中的密度相似隊列,計算平均連接波動(ALF,Average-Link-Fluctuation)。
ALF是用于描述密度相似隊列的波動的,它可以反應(yīng)數(shù)據(jù)點與其近鄰之間的密度波動,且密度相似隊列中越靠前的對象對ALF的貢獻越大,具體計算如下:
式中:r是Nk(p)中點的個數(shù),dist(p,oi)是計算兩點之間的距離。
步驟4:計算D中所有對象的密度異常因子(Density-Anomaly-Factor)。
密度異常因子是基于數(shù)據(jù)點與其k-近鄰鄰域中點的密度差異,它給出數(shù)據(jù)集中每個點一個異常得分,故障診斷人員可以根據(jù)高得分的異常點進行針對性的分析。
為了驗證本文所提算法的有效性,本節(jié)將在實際數(shù)據(jù)集上對所提算法進行仿真實驗,并與經(jīng)典的LOF算法[14]進行比較,本文仿真所用數(shù)據(jù)集來自著名的UCI機器學(xué)習(xí)開源數(shù)據(jù)庫。
對于異常檢測算法,學(xué)術(shù)界一般使用精度(Precision)、召回率(Recall)作為評價算法的標準[15],異常檢測算法一般都是給出目標數(shù)據(jù)集中每個對象是孤立點的程度或得分,根據(jù)該程度從大到小將數(shù)據(jù)集中的對象重新排序。用Om表示這個新序列的最前面m個對象中所有孤立點的集合,其中m是大于等于1的正整數(shù)。
精度等于由算法返回的新序列的最前面m個對象中孤立點的個數(shù)占這m個對象的百分比:
式中: ||Om表示Om中對象的個數(shù)。
召回率等于由算法返回的新序列最前面m個對象中孤立點的個數(shù)占數(shù)據(jù)集中孤立點個數(shù)的百分比:
式中: ||Do表示Do中對象的個數(shù)。
根據(jù)以上兩個評價標準的定義,算法的精度和召回率越高對于異常點的發(fā)現(xiàn)效果越好。
實驗1采用Johns Hopkins university ionosphere數(shù)據(jù)集,該數(shù)據(jù)集由good類的所有225個對象和bad類的10個對象組成,類的具體分布如表1所示。
表1 Johns Hopkins university ionosphere數(shù)據(jù)集類的分布
在該數(shù)據(jù)集中,bad類的對象相對整個數(shù)據(jù)集而言就是異常點,本文使用所提算法和LOF算法在該數(shù)據(jù)集上來檢測異常點,仿真結(jié)果如表2所示,當(dāng)m等于5和10時,本文所提算法和LOF算法的精度和召回率保持一致,然后隨著m的增大,本文所提算法檢測出的異常點個數(shù)要大于LOF算法,且精度更高。
表2 實驗1仿真結(jié)果
實驗2采用Pima Indians diabetes數(shù)據(jù)集,該數(shù)據(jù)集有8個屬性且包括280個點,所有對象分別屬于“0”和“1”兩個類,類的具體分布如表3所示。
表3 Pima Indians diabetes數(shù)據(jù)集類的分布
同理,在該數(shù)據(jù)集中,“0”類中的12個點相對整個數(shù)據(jù)集為異常點,本文使用所提算法和LOF算法在該數(shù)據(jù)集上來檢測異常點,仿真結(jié)果如表4所示,當(dāng)m等于5時,LOF算法無法發(fā)現(xiàn)任何異常點,隨著m的增大,本文所提算法的性能始終優(yōu)于LOF算法,當(dāng)m=60時,本文算法可以檢測到所有的異常點,而LOF算法有3個異常點未能成功檢測。
表4 實驗2仿真結(jié)果
通過兩組實際數(shù)據(jù)集的仿真可以看出,本文所提算法在檢測異常點上具有較好的性能。
本文在分析了武器裝備故障檢測現(xiàn)狀與問題的基礎(chǔ)上,基于數(shù)據(jù)挖掘的理念,提出基于密度異常因子的異常檢測算法,能根據(jù)武器裝備的運行狀態(tài)數(shù)據(jù)與檢修數(shù)據(jù),發(fā)現(xiàn)數(shù)據(jù)集中隱藏的異常點,并使用算法在開源數(shù)據(jù)集上進行了仿真實驗,與經(jīng)典算法的對比證明的所提算法的有效性。因軍用裝備數(shù)據(jù)的保密問題,所提算法還未在多種實戰(zhàn)裝備的數(shù)據(jù)集上進行測試驗證,未來仍需進行更多的測試驗證。