張星亮
(河北地質(zhì)大學 信息工程學院,河北 石家莊 050031)
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)是由具備通信能力和計算能力的傳感器節(jié)點組成的自組網(wǎng)絡(luò)。由于節(jié)點低成本且部署靈活等特點,現(xiàn)已廣泛用于農(nóng)業(yè)環(huán)境監(jiān)測、地質(zhì)數(shù)據(jù)采集、軍事偵察等眾多相關(guān)領(lǐng)域。無線傳感器網(wǎng)絡(luò)往往部署在無人管理的或者惡劣的環(huán)境中,可能會受到其他信號的干擾、自身電量限制和環(huán)境異常變化而導致數(shù)據(jù)出現(xiàn)異常,進而使得無法進行后面的數(shù)據(jù)計算和分析。因此在部署無線傳感器網(wǎng)絡(luò)時需要將對數(shù)據(jù)的異常檢測考慮在內(nèi)。
近些年來,一些專家和學者對無線傳感器網(wǎng)絡(luò)中的異常數(shù)據(jù)檢測做了很多突出貢獻。Bilal[1]等人提出了一種基于 K-medoid定制聚類技術(shù)的混合異常檢測方法,該方法適用于無線環(huán)境下包括誤向和黑洞攻擊的混合異常檢測。Mahmood[2]等人一種基于局部時間序列的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)噪聲與異常檢測方法,采用自適應(yīng)貝葉斯網(wǎng)絡(luò)作為分類算法,能夠?qū)γ總€傳感器節(jié)點的異常值進行局部預測和識別。Murad[3]等人提出了一種基于單類主成分分類器(OCPCC)的WSN分布式異常檢測模型,該模型利用了封閉鄰域中感測數(shù)據(jù)之間的空間相關(guān)性來對異常進行檢測。鄭文添[4]針對WSN的異常數(shù)據(jù)檢測,以PCA算法為基礎(chǔ)結(jié)合馬氏距離提出改進型分布式主成分異常數(shù)據(jù)檢測方案,能夠提高了網(wǎng)絡(luò)中異常數(shù)據(jù)的檢測性能并同時降低網(wǎng)絡(luò)中的通信資源開銷。鄧麗[5]等人提出一種融合數(shù)據(jù)流時空特征和多分類模型的異常檢測算法,算法首先基于 Markov鏈提取傳感器數(shù)據(jù)流的時空特征,然后將時空特征作為多分類卷積神經(jīng)網(wǎng)絡(luò)模型的輸入特征,對數(shù)據(jù)流進行異常檢測及異常類型識別。
馬田系統(tǒng)是一種用于多變量數(shù)據(jù)的判別預測方法,并且馬氏系統(tǒng)的應(yīng)用十分廣泛。Ning Wang[6]等人提出了一種基于改進 MTS的設(shè)備狀態(tài)特征識別與選擇模型,研究了模型的兩個方面,即原始馬氏空間的構(gòu)造和閾值的確定。Wenhe Chen[7]等人利用馬田系統(tǒng)通過六個維度:收入、教育、健康、生活、資產(chǎn)和住房,能夠準確識別貧困戶和非貧困戶。
彭宅銘[8]將馬田系統(tǒng)應(yīng)用在對滾動軸承的狀態(tài)監(jiān)測中,根據(jù)時域、頻域和自適應(yīng)白噪聲來分析軸承故障發(fā)展趨勢。彭宅銘[9]利用航空發(fā)動機的健康狀態(tài)進行評估,為航空發(fā)動機的狀態(tài)分析提供了一種新方法。王海燕[10]和吳敬之[11]分別將馬田系統(tǒng)應(yīng)用到航空客運服務(wù)的評價和工業(yè)運行質(zhì)量的評價,拓展了馬田系統(tǒng)的應(yīng)用。
本文將利用馬田系統(tǒng)來對無線傳感器網(wǎng)絡(luò)中所采集數(shù)據(jù)進行異常檢測。
馬田系統(tǒng)是由日本統(tǒng)計學家田口玄一博士提出的一種用于多變量數(shù)據(jù)的判別預測方法。馬田系統(tǒng)是由馬氏距離和田口方法組成。馬氏距離不僅僅是一種距離的度量,而且還可以用來表示數(shù)據(jù)之間的協(xié)方差距離。它是把屬性之間的相互聯(lián)系考慮在內(nèi),并且是與數(shù)據(jù)的測量單位無關(guān)。馬氏距離是用來區(qū)分異常數(shù)據(jù)和正常數(shù)據(jù),將區(qū)分之后的正常樣本的馬氏空間上通過田口方法的正交表和信噪比來對主要的特征變量進行篩選,達到優(yōu)化特征測量表,進而為后面的計算降低復雜度。將優(yōu)化之后的馬氏空間對異常數(shù)據(jù)和正常數(shù)據(jù)進行閾值劃分,當再遇到未知的樣本數(shù)據(jù)時,可以直接利用已經(jīng)計算好的閾值,直接進行分類和預測。利用馬田系統(tǒng)將異常數(shù)據(jù)劃分出來之后,對于異常數(shù)據(jù)將不再信任,本文將利用第四章方法對不信任的異常值進行補值。
本文將具體的實施步驟可以分為4步:構(gòu)建馬氏空間、馬氏空間的驗證、馬氏空間的優(yōu)化、分類和診斷。
馬氏空間就是由馬氏距離構(gòu)建的矩陣,馬氏空間對馬氏系統(tǒng)的有效性和可靠性有著極其重要的影響,這也是構(gòu)建馬田系統(tǒng)最首要的步驟。首先需要選出進行構(gòu)建空間的正常樣本并確定特征量,先將選定的特征變量進行計算平均值和標準差,并以此來對數(shù)據(jù)進行標準化。將標準化的正常樣本的馬氏距離構(gòu)成馬氏空間。
馬氏距離是由印度統(tǒng)計學家馬哈拉諾比斯提出的,是用來表示協(xié)方差的距離,一種來表示未知特征集合相似度的度量方式。馬氏距離相對于歐氏距離來說,馬氏距離不僅對變量之間的相關(guān)性極其敏感,而且還能消除變量之間的相互干擾;而歐氏距離只是單純的計算變量之間的距離值,無法對變量之間的相關(guān)性和變量之間是否存在相互干擾做出判斷。
馬氏距離通過被測樣品與馬氏總體之間的距離,來體現(xiàn)樣本之間的相似程度。本文中使用施密特正交法對馬氏距離進行計算,所以這里只對施密特正交法進行介紹。對于逆矩陣法的馬氏距離求解的具體步驟如下:
(1)假設(shè)多元系統(tǒng)中有p個變量,并設(shè)為vj,其中j= 1 ,2,3,… ,p,通過p個變量來進行界定正常數(shù)據(jù)的樣本空間。
(2)在系統(tǒng)的p個變量下,進行收集容量為n的樣本數(shù)據(jù),數(shù)據(jù)vij是第j個變量中第i次的測量值,其中i= 1 ,2,3,… ,n。
(3)將測量的樣本數(shù)據(jù)進行標準化,
其中Zi表示正常樣品中第i個標準化的數(shù)據(jù),其中i= 1 ,2,3,… ,n。
通過相關(guān)系數(shù)矩陣可以得到馬氏距離,但是相關(guān)矩陣可能存在多重共線問題,進而影響模型的穩(wěn)健性。為了避免多重共線問題,可以利用施密特正交法來進行馬氏距離的計算。先是通過對p個變量進行標準化為:
其中i= 1 ,2,3,… ,n。將標準化的向量組進行施密特正交化。
進而得到的馬氏距離為:
由于馬氏空間是通過正常樣本進行構(gòu)建的,所以馬氏空間的有效性還需要檢驗,若該馬氏空間能夠?qū)惓?shù)據(jù)和正常數(shù)據(jù)進行區(qū)分,那證明該馬氏空間是有效的,否則需要重新構(gòu)建馬氏空間。在進行馬氏空間驗證時,需要計算異常數(shù)據(jù)的馬氏距離的均值,并以此與正常數(shù)據(jù)的馬氏距離均值進行比較,如果大于正常數(shù)據(jù)的馬氏距離均值,那說明由第一步構(gòu)建的馬氏空間是有效的。其中在計算異常數(shù)據(jù)的馬氏距離時,用到的樣本均值和標準差均是采用正常樣本的。
本文中的異常數(shù)據(jù)的馬氏空間也是利用正常數(shù)據(jù)的均值和標準差將數(shù)據(jù)標準化,利用施密特正交化構(gòu)建的異常數(shù)據(jù)的馬氏空間。如果正常數(shù)據(jù)的馬氏空間遠遠小于異常數(shù)據(jù)的馬氏空間,則說明由正常數(shù)據(jù)構(gòu)建的馬氏空間有效,否則需要重新選擇樣本數(shù)據(jù)來重新構(gòu)建馬氏空間。
在選定的所有原始變量中,并不是所有的變量都對異常檢測有貢獻,所以在構(gòu)建馬氏空間之后要對馬氏空間進行優(yōu)化,這樣不僅能對數(shù)據(jù)降維,也能為后面的計算降低復雜度。本文使用正交表和信噪比來對馬氏空間進行優(yōu)化。
1.3.1 正交表
正交表是帶有規(guī)則的設(shè)計表格,而在馬田系統(tǒng)中則是根據(jù)初始變量的不同來選擇相對應(yīng)的正交表。在正交表中,每一行對應(yīng)著每一組實驗,“1”是選擇該變量,“2”是不選擇該變量,這樣將會對變量進行選擇,將被選擇的變量來組成馬氏空間。
表1 L8(27)的正交表Tab.1 The orthogonal table of L8(27)
在表中第一次試驗對應(yīng)的變量選擇為1、1、1、1、1、1、1,即每個特征變量的水平為“1”,由此可得組成馬氏空間的特征變量為X1、X2、X3、X4、X5、X6、X7。而表中的第二次試驗的變量選擇為 1、1、1、2、2、2、2,前三個的特征變量都為“1”,后四個的特征變量都為“2”,由此組成的馬氏空間的變量為X1、X2、X3。將使用選擇的特征變量來計算正常樣品和異常樣品的馬氏距離。
1.3.2 信噪比
信噪比(Signal Noise Ratio,SNR)通常是用在通信行業(yè)中,用于對電子設(shè)備或電子系統(tǒng)的通信的評價。在通信行業(yè)中,信噪比是接收到的信號功率和噪聲功率的比值;而在馬田系統(tǒng)中是通過信噪比來使馬氏距離的偏離程度放大,進而能夠選擇對異常檢測貢獻較大的特征變量。本文采用正交表和信噪比來篩選特征變量。
信噪比不僅能評價篩選之后的特征變量的可靠性和穩(wěn)健性,還能對篩選的特征變量組的功效性進行評價。當對異常數(shù)據(jù)進行評價時,在不了解異常數(shù)據(jù)的情況下,相對于正常數(shù)據(jù),希望異常數(shù)據(jù)的偏離程度越大越有利于數(shù)據(jù)的辨識,本文采用望大特性信噪比來進行計算。假設(shè)異常樣本的數(shù)目為n,采用施密特正交法計算得到的馬氏距離為MD1,MD2,… ,MDn,則正交表進行的第i次實驗的望大特性信噪比為:
在引入信噪比之后,需要對特征變量進行部分剔除和保留,因此引入信息增益差ΔSN:
將篩選過后的特征變量重新計算正常數(shù)據(jù)和異常數(shù)據(jù)的馬氏距離和馬氏空間,并與原始馬氏空間進行對比,驗證優(yōu)化后的馬氏空間的是否改善。利用優(yōu)化后的馬氏空間和閾值λ來對未知的樣本進行分類和識別。對于未知樣本的分類和識別,本文采用f極大值方法來確定閾值。
在馬田系統(tǒng)的應(yīng)用及實踐中,閾值的確定對異常數(shù)據(jù)的判斷有著極其重要的意義,閾值的好壞直接影響著系統(tǒng)的好壞以及對數(shù)據(jù)的判斷結(jié)果。馬田系統(tǒng)的閾值確定一直都備受關(guān)注,田口玄一博士利用二次損失函數(shù)(Quality Loss Function,QLF)對閾值進行計算,二次損失函數(shù)是憑借專業(yè)人員的判斷和損失數(shù)據(jù)來對閾值進行判斷,這樣得到的閾值會有很大的主觀性。本文采用f極大值法來確定閾值。
設(shè)T為閾值,通過施密特正交法計算的正常樣本的馬氏距離MDi,i= 1 ,2,…,n,而異常樣本的馬氏距離為MDi,i=n+ 1 ,n+ 2,…,n+m。
其中i= 1 ,2,… ,n。
其中i=n+ 1 ,n+ 2,… ,n+m。
則正常樣本進行分類的正確率為:
異常樣本進行分類的正確率為:
設(shè)極大值f=f1×f2,f值最大時求得T值為馬田系統(tǒng)的閾值。具體算法表示
在閾值確定之后,對于未知的樣本數(shù)據(jù),可以利用本文提到逆矩陣法、施密特正交法、伴隨矩陣法構(gòu)建相對應(yīng)的馬氏空間,并通過計算好的閾值與馬氏距離相比較,進而能夠?qū)Ξ惓?shù)據(jù)進行判定和識別。
本文使用python進行實驗,并對真實數(shù)據(jù)集上進行本文實驗,測試所用的數(shù)據(jù)集是由部署在英特爾-伯克利實驗室的54個傳感器節(jié)點在36天內(nèi)產(chǎn)生的采集數(shù)據(jù)。這些采集數(shù)據(jù)分別是對溫度、濕度、光照強度和節(jié)點電壓每隔30 s進行一次采樣所得的采集值。本文選取節(jié)點19在2004年3月8日所采集的數(shù)據(jù),每隔15分鐘進行一次數(shù)據(jù)選取。
本文將以時間序列為依據(jù),采用隨時間的變化的傳感器的數(shù)據(jù)為馬氏系統(tǒng)的特征向量,特征向量將由溫度、濕度、光照強度、電壓組成。表2將要進行異常數(shù)據(jù)監(jiān)測的特征變量。
表2 農(nóng)業(yè)數(shù)據(jù)的特征變量Tab.2 Characteristic variables of agricultural data
利用施密特正交法對特征變量計算正常樣本的馬氏距離,如表3所示。
表3 正常樣本的馬氏距離表Tab.3 Mahalanobis distance table of normal samples
通過表 3正常數(shù)據(jù)的馬氏距離可以看出,馬氏距離的均值 1.01352≈1,但可以看出選取的正常樣本數(shù)據(jù)是有效的,但是單從正常數(shù)據(jù)的馬氏距離是不能看出該特征變量的數(shù)據(jù)是否有效,還要與異常數(shù)據(jù)的馬氏距離進行比較,通過觀察異常樣本的馬氏距離的偏離程度來確定選取的數(shù)據(jù)是否有效。
異常數(shù)據(jù)是正常數(shù)據(jù)之外的數(shù)據(jù),在本文中將模擬異常數(shù)據(jù),使用python隨機產(chǎn)生30個異常數(shù)據(jù)進行試驗。本文將模擬采集數(shù)據(jù)錯誤、終端節(jié)點掉電、節(jié)點被攻擊、發(fā)送數(shù)據(jù)超時等多種情況的發(fā)生,盡可能的使異常數(shù)據(jù)還原到真正的異常情況發(fā)生。異常數(shù)據(jù)的馬氏距離如表4所示。
表4 異常樣本的馬氏距離表Tab.4 Mahalanobis distance table of abnormal samples
由表 2中數(shù)據(jù)可以得知,異常數(shù)據(jù)的馬氏距離的均值為 8.0142,并且與正常樣本的馬氏距離存在明顯的差異,異常樣本的馬氏距離是遠遠大于正常樣本的馬氏距離,由此創(chuàng)建的馬氏空間是有效的。若是異常樣本的馬氏距離與正常樣本的馬氏距離存在的數(shù)據(jù)差異較小的話,則需要重新選擇數(shù)據(jù)來重新構(gòu)建空間。
在系統(tǒng)中并不是數(shù)據(jù)的特征量越多就代表數(shù)據(jù)越詳細,就能較全面的展現(xiàn)系統(tǒng)中的變化。有些特征量能直觀的反應(yīng)農(nóng)業(yè)數(shù)據(jù)的變化,有利于提高識別數(shù)據(jù)中存在的異常值,但是有些數(shù)據(jù)是不能直觀的展現(xiàn)數(shù)據(jù)變化的,因此需要將這些不能直觀展現(xiàn)數(shù)據(jù)變化的冗余數(shù)據(jù)給去除掉。在本文中則使用正交表和信噪比進行冗余數(shù)據(jù)的篩選,篩選出對判別異常數(shù)據(jù)有用的特征變量,從而能夠達到降維的目的。
其中“1”表示選擇該特征變量進行計算信噪比,“2”則相反,即不選擇該變量進行計算信噪比。每一行都對應(yīng)所選取的特征變量來構(gòu)建馬氏空間,即每行對應(yīng)著一個馬氏空間,由表中可知總共為8組實驗方案。在選定每行的特征變量之后,再進行計算選定之后異常條件下的馬氏距離,最后再計算馬氏距離所相應(yīng)的信噪比。
表5 L8 (24)的正交表及變量選擇Tab.5 The orthogonal table of L 8 (24)and variable selection
在選定各組特征變量后,通過對各組的被選中的異常情況下數(shù)據(jù)進行標準化和施密特正交化,進而得到馬氏距離而構(gòu)成的子馬氏空間。30組異常條件下的特征變量在表4重新構(gòu)建的馬氏空間下所對應(yīng)的馬氏距離的均值,如表6所示。
表6 8 次實驗所對應(yīng)的馬氏距離的均值及信噪比Tab.6 Mean value and SNR of Mahalanobis distance corresponding to eight experiments
在計算正交表所重構(gòu)的馬氏距離和馬氏距離所對應(yīng)的信噪比之后,還需要與重構(gòu)馬氏空間后剩下的部分特征變量所形成的信噪比進行對比,進而形成信息增益,如表7所示。
表7 信息增益表Tab.7 Infor mation gain table
在多元系統(tǒng)變量中,決策閾值對判別的有效性有著重要的作用。傳統(tǒng)的馬田系統(tǒng)使用質(zhì)量損失函數(shù)方法確定決策閾值,但是真實情況下質(zhì)量損失是專業(yè)人員根據(jù)平常的經(jīng)驗和積累規(guī)定的,所以質(zhì)量損失函數(shù)在確定閾值的過程中會存在主觀性,由此方法得到的閾值準確度不高。采用f極大值方法來確定閾值,為了使是實驗結(jié)果準確本文采用窮舉法來確定閾值,雖然消耗的時間長點,但是整體具有較高的準確性。具體的算法描述如算法1所示。
算法1f極大值計算閾值偽代碼表示
Algorithm.1 Pseudo code representation of f-max calculation threshold
f極大值計算閾值偽代碼表示
輸入:正常樣本的馬氏距離、異常樣本的馬氏距離。
輸出:判斷正常樣本馬氏距離的閾值T。
MD_Nor_Data、MD_Abnor_Data分別是正常數(shù)據(jù)和異常數(shù)據(jù)所對應(yīng)的馬氏距離。
Step.1whilej< max(MD_Nor_Data)/*使用最大馬氏距離來當作循環(huán)的終止點*/
Step.2forindextolen(MD_Nor_Data)
Step.3 統(tǒng)計正常數(shù)據(jù)的馬氏距離中大于j的個數(shù)
Step.4forindextolen(MD_Abnor_Data)
Step.5 統(tǒng)計異常數(shù)據(jù)的馬氏距離中小于等于j的個數(shù)
Step.6 記錄正常數(shù)據(jù)馬氏距離的正確率f1
Step.7 記錄異常數(shù)據(jù)馬氏距離的正確率f2
Step.8fi←f1 *f2
Step.9 最大的fi就是馬田系統(tǒng)的閾值T
Step.10endwhile
通過上文的正常樣本馬氏距離和優(yōu)化后的異常樣本的馬氏距離,利用f最大值方法,以0.0001為精度進行遍歷,得到的最佳閾值點的馬氏距離為3.742。通過農(nóng)業(yè)物聯(lián)網(wǎng)節(jié)點所采集的數(shù)據(jù)進行分類計算,在異常情況下進行診斷的準確率為80.13%。雖然會消耗一點時間,但是得到的正常樣本的正確分類率是比較高的。
針對數(shù)據(jù)樣本中存在的異常數(shù)據(jù),本文提出使用馬田系統(tǒng)進行異常檢測,利用施密特正交法分別計算正常數(shù)據(jù)和異常數(shù)據(jù)的馬氏距離。大量的數(shù)據(jù)樣本經(jīng)過正交表和信噪比降維后,能夠大大減少計算量,之后使用f極大值方法計算出閾值。通過英特爾-伯克利實驗室采集的真實數(shù)據(jù)進行異常檢測實驗,并能夠?qū)Ξ惓?shù)據(jù)進行有效的識別。