車麗娜,任秀麗
(遼寧大學(xué)信息學(xué)院,遼寧 沈陽 110036)
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)由大量小型的傳感器節(jié)點組成,具有數(shù)據(jù)感知、數(shù)據(jù)收集、數(shù)據(jù)處理和無線通信的功能[1]。傳感器節(jié)點通常較小且造價低廉,可密集分布在完全隨機化的地理區(qū)域中,在環(huán)境監(jiān)測、農(nóng)業(yè)生產(chǎn)、工業(yè)制造和軍事探測等領(lǐng)域有著廣泛的應(yīng)用[2-3]。由于傳感器節(jié)點隨機分布在戶外環(huán)境中,可能會受環(huán)境波動、入侵攻擊或硬件故障的影響,使傳感器節(jié)點讀取到異常數(shù)據(jù),其產(chǎn)生原因通常很復(fù)雜,不及時處理可能會引起信息誤報,產(chǎn)生額外開銷。因此,做好無線傳感器網(wǎng)絡(luò)的數(shù)據(jù)異常檢測,及時診斷異常值的來源,對于管理者進行控制決策尤為重要[4]。
異常值的檢測方式大致可分為集中式檢測和分布式檢測,主要的數(shù)據(jù)異常類型有兩種:事件異常和錯誤異常[5]。針對這兩種數(shù)據(jù)異常類型,目前有大量文獻做了深度研究。文獻[6]通過計算待測節(jié)點與可靠鄰居節(jié)點的相似性進行異常數(shù)據(jù)檢測,通信開銷較大。文獻[7]通過比較待測節(jié)點中異常值數(shù)量與滑動窗口的大小關(guān)系進行事件檢測,檢測周期過長致檢測效率低下。文獻[8-10]提出節(jié)點信息可靠度,選出可靠節(jié)點,利用貝葉斯模型對檢測結(jié)果綜合決策,節(jié)點間通信開銷較大。文獻[11]根據(jù)節(jié)點收集數(shù)據(jù)量的大小在本地自適應(yīng)地進行異常檢測,但未明確其參數(shù)的取值范圍。文獻[12-13]基于特征分類檢測時間序列中的異常數(shù)據(jù),難以詳細地描述原始序列的局部動態(tài),致檢測精度較低。文獻[14-15]通過建立異常預(yù)測模型,計算預(yù)測值與測量值之間的差值是否超過預(yù)定義的異常閾值,通信開銷小,但檢測誤差指數(shù)并沒有顯著降低。文獻[16]提出了基于預(yù)測機制的事件檢測容錯算法(K-Nearest Neighbor-Particle Swarm Optimization-Extreme Learning Machine,KNNPSOELM),通過收集不同時刻待測節(jié)點的節(jié)點狀態(tài),利用時空相關(guān)性對異常數(shù)據(jù)類型協(xié)同判斷,能耗低但在空間相關(guān)性檢測中僅考慮了節(jié)點間的距離因素,導(dǎo)致檢測精度降低。文獻[17]提出了一種基于鄰域的離群值檢測算法(Outlierness Factor Based on Neighbourhood to Detect and Analyse the Outliers in Sensor Network,OFN),采用鄰居的異常因子值,聯(lián)合節(jié)點間的通信概率完成自身檢測,算法太過于依賴鄰居節(jié)點的數(shù)據(jù)信息,處理全部鄰節(jié)點所收集的數(shù)據(jù)將造成較大的計算開銷,致節(jié)點能耗較大、網(wǎng)絡(luò)壽命縮短。
以上提到的異常檢測算法均未考慮到監(jiān)測區(qū)域內(nèi)環(huán)境因素對檢測結(jié)果判定帶來的不確定性影響,導(dǎo)致算法容錯性能較差、檢測精度較低。本文提出的基于滑動窗口和置信度的無線傳感器網(wǎng)絡(luò)異常檢測算法(Anomaly Detection Algorithm Based on Sliding Windows and Confidence,ADABSWC),綜合考慮環(huán)境因素及檢測結(jié)果的差異性,利用環(huán)境因子量化監(jiān)測環(huán)境中的不確定性,得到環(huán)境因子的置信區(qū)間。參照其區(qū)間取值建立異常數(shù)據(jù)干擾區(qū)間,用于識別滑動窗口數(shù)據(jù)序列中的異常數(shù)據(jù)。根據(jù)所提出的數(shù)據(jù)異常度的計算方法,預(yù)判異常數(shù)據(jù)的類型;然后,利用相對熵計算節(jié)點信息置信度。根據(jù)置信度得到不同的決策信息,對節(jié)點事件異常類型做出最終判定。該算法檢測精度高、誤報率低且減少了節(jié)點間的通信次數(shù),降低了節(jié)點的能量損耗。
假設(shè)N個傳感器節(jié)點被隨機地部署在待監(jiān)測區(qū)域內(nèi),節(jié)點間自組織形成網(wǎng)絡(luò),且網(wǎng)絡(luò)中的節(jié)點滿足以下條件:①各個節(jié)點負責(zé)數(shù)據(jù)的收集與處理,且具有相同的處理能力;②各個節(jié)點具有唯一標(biāo)識,通過定位設(shè)備反饋自己的位置信息;③節(jié)點的最大通信半徑R、廣播半徑r均相同,且時鐘是同步的;④相同采樣周期內(nèi),正常節(jié)點收集到的數(shù)據(jù)服從正態(tài)分布[18]。
時間序列是無線傳感器節(jié)點采集數(shù)據(jù)的重要形式,可以表明環(huán)境的變化特征。傳感器節(jié)點在連續(xù)一段時間內(nèi),檢測到的數(shù)據(jù)顯著偏離于正常數(shù)據(jù),便認為有異常發(fā)生[19]。異常值的來源主要包括:①事件異常:傳感器節(jié)點所在區(qū)域發(fā)生了特定事件;②錯誤異常:傳感器節(jié)點由于自身的軟硬件故障或能耗問題而無法正常工作。
本文提出的無線傳感器網(wǎng)絡(luò)異常檢測算法主要分為兩個階段:第一階段是基于滑動窗口模型得到數(shù)據(jù)差值序列均值的區(qū)間估計,建立異常數(shù)據(jù)干擾區(qū)間,通過計算數(shù)據(jù)異常度預(yù)判節(jié)點異常類型;第二階段利用相對熵計算節(jié)點信息置信度,協(xié)同可靠的鄰節(jié)點確定節(jié)點數(shù)據(jù)異常源自事件。
傳感器節(jié)點收集的環(huán)境數(shù)據(jù)具有連續(xù)性,而節(jié)點本身的存儲能力有限,無法滿足數(shù)據(jù)序列的無限增長性,故本文采用滑動窗口模型(Sliding Window Model)處理數(shù)據(jù),節(jié)點僅保存最新的k個數(shù)據(jù)?;瑒哟翱谥械臄?shù)據(jù)遵循先進先出的規(guī)則,假設(shè)當(dāng)前窗口數(shù)據(jù)集為{r(t1),r(t2),…,r(tk)},其中r(t1),r(t2),…,r(tk)分別為t1,t2,…,tk采樣時間下采集到的數(shù)據(jù)。當(dāng)新數(shù)據(jù)r(tk+1)到來時,窗口向前滑動,窗口中的數(shù)據(jù)集更改為{r(t2),r(t3),…,r(tk+1)},以此類推。
傳感器節(jié)點對同一監(jiān)測區(qū)域內(nèi)多個設(shè)備引起的干擾現(xiàn)象非常敏感,據(jù)此提出環(huán)境干擾因子η來衡量監(jiān)測環(huán)境的不確定性。假設(shè)在某一個采樣周期T內(nèi),傳感器節(jié)點j采集的數(shù)據(jù)集為Dj(ti)={dj(t1),dj(t2),…,dj(tk)},其中數(shù)據(jù)量為k,對數(shù)據(jù)集中的數(shù)據(jù)進行如下預(yù)處理:
每兩個連續(xù)采樣值之間的差值用Δdv表示,其數(shù)據(jù)序列為,數(shù)據(jù)量個數(shù)n=k-1,利用式(3)、式(4)計算差值序列的樣本均值和樣本方差。
設(shè)Δdv的總體服從正態(tài)分布N(μ,σ2),由于總體的方差σ2未知,因此使用差值序列樣本方差S2來估計總體差值樣本均值的置信區(qū)間,可得到:
得到T關(guān)于總體均值μ的樞軸量:
得到置信度為1-α的總體差值序列均值μ的區(qū)間估計:
因此,得到環(huán)境干擾因子η的取值區(qū)間來衡量監(jiān)測環(huán)境的不確定性。令區(qū)間的下限為環(huán)境干擾因子η的最小值ηmin,區(qū)間的上限為環(huán)境干擾因子η的最大值ηmax,其中α和k的取值將在實驗中給出。
由于傳感器節(jié)點部署于不同的環(huán)境中,節(jié)點分布的規(guī)模不盡相同,其射頻干擾、電磁干擾的程度也會不同,測量值會出現(xiàn)上下波動的現(xiàn)象。在有些環(huán)境中,即使數(shù)據(jù)波動較大,數(shù)據(jù)也是正常的;而有些環(huán)境中數(shù)據(jù)波動較小,數(shù)據(jù)卻是異常的。因此,異常檢測中將事件閾值設(shè)置為一個固定值是不可靠的,利用傳統(tǒng)的閾值函數(shù)進行判斷時容易產(chǎn)生漏報或誤報??紤]到異常檢測方法的差異性,為更好地提高算法的容錯性能,在事件閾值函數(shù)的基礎(chǔ)上,結(jié)合環(huán)境干擾因子η,建立異常數(shù)據(jù)干擾區(qū)間[LL,UL],如式(9)所示??蓪Νh(huán)境中的不確定性因素所引起的數(shù)據(jù)波動進行容錯,提高識別異常值的能力,從而減少誤報、漏報的次數(shù)。
式中:k為樣本規(guī)模;δ為樣本標(biāo)準(zhǔn)差。Rth(t)表示事件閾值函數(shù)[20];Ee(t)表示正常工作的傳感器在事件區(qū)域內(nèi)測量值的數(shù)學(xué)期望;En(t)表示正常區(qū)域中測量值的數(shù)學(xué)期望。
為了進一步判斷數(shù)據(jù)異常類型,本文引入以下兩個概念,給出定義如下:
定義1數(shù)據(jù)異常度θ:對于數(shù)據(jù)樣本點dj(ti),其數(shù)據(jù)異常度θ表示采樣數(shù)據(jù)dj(ti)與事件閾值Rth(t)之間的差值偏離于異常數(shù)據(jù)干擾區(qū)間的程度。公式如下:
式中:dj(ti)為傳感器節(jié)點在ti時刻的讀數(shù);UL(Upper Limit)為干擾區(qū)間的上限;LL(Lower Limit)為干擾區(qū)間的下限;AD(Abnormal Data)為異常數(shù)據(jù);ND(Normal Data)為正常數(shù)據(jù)。θ越大說明傳感器節(jié)點監(jiān)測的測量值離正常樣本數(shù)據(jù)越遠,dj(ti)為異常值的可能性越大。
由此得到一個采樣周期內(nèi),數(shù)據(jù)異常度θ的平均值μ(θ):
定義2事件異常指標(biāo)φ:依據(jù)異常數(shù)據(jù)干擾區(qū)間,得到判斷是否發(fā)生事件異常的重要指標(biāo)。公式如下:
實際中,異常值的情況可分為高于正常值的異常(AD>ND)或低于正常值的異常(AD<ND)。若異常值大于正常值時,則將異常數(shù)據(jù)干擾區(qū)間的上限作為識別異常數(shù)據(jù)的標(biāo)準(zhǔn)。數(shù)據(jù)異常度θ以及事件異常指標(biāo)φ分別采用式(11)和式(13)中AD>ND條件下的計算方法;同理,若異常值低于正常值時,將異常數(shù)據(jù)干擾區(qū)間的下限作為識別異常數(shù)據(jù)的標(biāo)準(zhǔn)。數(shù)據(jù)異常度θ及事件異常指標(biāo)φ分別采用式(11)和式(13)中AD<ND 條件下的計算方法。
因預(yù)判節(jié)點數(shù)據(jù)異常類型時,以上兩種情況的判別流程均相同,僅數(shù)據(jù)異常度θ及事件異常指標(biāo)φ所采取的計算方法不同。本文對算法的流程及流程圖進行相關(guān)描述和繪制時,僅考慮異常值大于正常值(AD>ND)的情況。當(dāng)測量值dj(ti)>Rth(t)+或dj(ti)=dj(ti-1)時,說明節(jié)點出現(xiàn)了異常。為判斷異常數(shù)據(jù)的類型,需計算數(shù)據(jù)異常度θ和事件異常指標(biāo)φ,在一個采樣周期內(nèi),計算采樣周期內(nèi)數(shù)據(jù)異常度的均值μ(θ)。若μ(θ)>φ且dj(ti)≠dj(ti-1),則認為該節(jié)點異常源自事件。若μ(θ)<φ或dj(ti)=dj(ti-1),則認為該節(jié)點異常源自錯誤,并將判斷結(jié)果發(fā)送給基站。
在本文提出的基于滑動窗口和置信度的異常檢測算法中,其預(yù)判節(jié)點異常類型的流程,如圖1 所示。本算法利用滑動窗口模型,考慮到監(jiān)測環(huán)境中的不確定性,提出環(huán)境因子建立異常數(shù)據(jù)干擾區(qū)間,可以避免在異常數(shù)據(jù)識別過程中因測量誤差、通信干擾帶來的誤報,提高了識別異常數(shù)據(jù)的能力及節(jié)點異常類型的檢測精度。雖然依靠滑動窗口模型可以檢測到事件異常的發(fā)生,但憑借單個節(jié)點的檢測結(jié)果并不可靠??紤]到同一監(jiān)測區(qū)域內(nèi)的傳感器節(jié)點具有空間相關(guān)性,物理位置相近的節(jié)點在同一采樣周期內(nèi)采集到的數(shù)據(jù)具有相似性。因此,利用相對熵來計算節(jié)點信息置信度,通過引入多通信半徑劃分可靠鄰域,利用可靠鄰居節(jié)點的信息對本節(jié)預(yù)判出的事件異常類型做進一步的檢測。
圖1 預(yù)判節(jié)點異常來源算法流程圖
傳感器節(jié)點間的判定原理,源自于傳感器節(jié)點在物理位置上的分布情況,在相鄰區(qū)域內(nèi)測得的數(shù)據(jù)具有連續(xù)性和相似性。在空間關(guān)系中,節(jié)點間的空間相似性不僅與物理距離有關(guān),還與節(jié)點間采集信息的相似程度有關(guān)。為了反應(yīng)異常節(jié)點與其鄰居節(jié)點間的關(guān)聯(lián)程度,本文引入相對熵[21]計算兩組數(shù)據(jù)隨機變量分布間的相關(guān)性,用于計算節(jié)點信息置信度,以此進一步確定事件異常的發(fā)生。
2.2.1 節(jié)點信息置信度
在2.1 節(jié)中已經(jīng)被預(yù)判為事件異常的傳感器節(jié)點j,其通信半徑R內(nèi)所有鄰居節(jié)點的集合,即Neighbor(j)={S(i)|dist(i,j)≤R},節(jié)點的個數(shù)記為Nj。利用鄰居節(jié)點i∈Neighbor(j)間的距離參數(shù)反映對事件異常節(jié)點決策的貢獻度wij:
所有鄰居節(jié)點的加權(quán)和為1。
假設(shè)異常節(jié)點j和其所有鄰居節(jié)點在同一采樣周期T內(nèi),收集到數(shù)據(jù)量為k的數(shù)據(jù)序列分別為:
式中:Rj(t)表述異常節(jié)點j收集的數(shù)據(jù)序列;(t)表示異常節(jié)點j的鄰居第i個鄰居節(jié)點收集的數(shù)據(jù)序列。
對式(15)中所采集到的數(shù)據(jù)序列分別進行歸一化處理:
設(shè)P(xj)、Q(xi)分別為異常節(jié)點j與鄰居節(jié)點i進行歸一化處理后的概率分布函數(shù),利用相對熵計算公式:
由于相對熵具有非負性、非對稱性,熵的大小和兩個變量的數(shù)據(jù)大小沒有關(guān)系,只與數(shù)據(jù)變量的分布有關(guān),因此可利用相對熵表示節(jié)點間信息相似度τij:
節(jié)點間信息越相似,相似程度越高,熵值越小,反之,熵值越大,故對τij取倒數(shù)對節(jié)點信息置信度進行優(yōu)化,得到式(20):
式中:λj為節(jié)點信息置信度;Neighbor'(j)是與節(jié)點j狀態(tài)相同的鄰節(jié)點集合;Ni為j的鄰居節(jié)點;N'(j)是Neighbor'(j)的個數(shù)。
當(dāng)節(jié)點j的異常類型被預(yù)判為事件異常時,接下來將與其鄰居節(jié)點協(xié)作計算節(jié)點信息置信度,進行協(xié)同判斷。根據(jù)節(jié)點信息置信度的大小,得到不同的決策信息,從而確定2.1 節(jié)中預(yù)判的節(jié)點異常源自事件異常,使檢測結(jié)果更加準(zhǔn)確。
2.2.2 多通信半徑
為減少節(jié)點間的通信開銷、降低節(jié)點能量損耗,本算法引入多通信半徑劃分最佳鄰域,如圖2 所示。將節(jié)點j的最大通信半徑R分成,R,分別對應(yīng)A、B、C、D,4 個區(qū)域。若A區(qū)域內(nèi)節(jié)點數(shù)量充足,通過式(20)計算得到該區(qū)域內(nèi)鄰節(jié)點對j節(jié)點的置信支持度。若置信度較高,根據(jù)距離越近、相似度越高的原則,則2.1 節(jié)中節(jié)點j檢測到事件異常發(fā)生的支持率越高,便可確定節(jié)點j的異常源自事件。便不再計算其他三個區(qū)域的內(nèi)鄰節(jié)點對j節(jié)點的置信度,并將檢測結(jié)果發(fā)回基站;若A 區(qū)域內(nèi)節(jié)點數(shù)量較少,可進一步計算B 或C 區(qū)域內(nèi)鄰節(jié)點對j節(jié)點的信息置信度。若區(qū)域內(nèi)節(jié)點信息置信度依舊較低,則2.1 節(jié)中節(jié)點j預(yù)判的異常源自事件的支持率越低。故對異常來源判斷有誤,將進行下一步處理。因此,根據(jù)劃分的最佳鄰域,選擇性地計算鄰節(jié)點信息置信度λj,可減少節(jié)點j與其鄰居節(jié)點間的通信次數(shù),從而降低節(jié)點能量損耗,提高檢測精度的同時減少了通信開銷。
圖2 多通信半徑示意圖
本文使用OMNeT++仿真環(huán)境,N∈[200,1 000]個傳感器節(jié)點隨機分布在400 m×400 m 的區(qū)域中,節(jié)點初始能量均為2 J,通信半徑R=20 m。實驗假設(shè)事件異常集合{r(t)}錯誤異常隨機過程{r'(t)}分別滿足r(t)~N(μ',σ'2)和r'(t)~U(En(t),Ee(t)),顯著性水平α[22]取5%。
為驗證本文算法性能,分別從檢測率(Time Positive Rate)和誤報率(False Positive Rate)兩方面進行分析[23]。
定義2事件節(jié)點檢測率ETP(C):
定義3事件節(jié)點誤報率EFP(C):
定義4錯誤節(jié)點檢測率FTP(C):
定義5錯誤節(jié)點誤報率FFP(C):
式中:E為實際事件節(jié)點集合;F為實際錯誤節(jié)點集合;S為監(jiān)測區(qū)域內(nèi)所有節(jié)點集合。
3.3.1 滑動窗口數(shù)據(jù)量k的取值
滑動窗口數(shù)據(jù)量k的取值對算法的效率和檢測精度會產(chǎn)生較大影響。如果k取值過大,會造成資源浪費影響整體性能;如果k取值過小,會影響檢測結(jié)果降低檢測精度。實驗選取無線傳感器網(wǎng)絡(luò)中的光照強度、溫度、濕度數(shù)據(jù)各5 000 組,分別用不同的滑動窗口長度計算方差?;瑒哟翱陂L度與數(shù)據(jù)組方差的關(guān)系,見圖3。圖中數(shù)據(jù)的方差隨著窗口長度的增加逐漸穩(wěn)定,分析可得k的大小在25 至35 之間較為合適,因此本文k值選取30 用于下文的實驗中。
圖3 滑動窗口長度與數(shù)據(jù)組方差的關(guān)系
3.3.2 算法的對比實驗
現(xiàn)將分布于不同規(guī)模下的傳感器節(jié)點,在錯誤節(jié)點占比(5%)相同的情況下,應(yīng)用ADABSWC 算法與KNN-PSOELM、OFN 算法進行各種性能的比較。圖4所示為事件節(jié)點檢測率(ETP(C))的變化情況。
圖4 事件節(jié)點檢測率與節(jié)點規(guī)模的關(guān)系
從圖4 可以看出,隨著傳感器節(jié)點數(shù)目的增加,KNN-PSOELM、OFN 與ADABSWC 算法的檢測精度均有所增加,但ADABSWC 算法事件節(jié)點的檢測率明顯高于其他兩種算法,體現(xiàn)出較好的性能。原因在于,ADABSWC 算法在不同的節(jié)點規(guī)模下,利用環(huán)境干擾因子η建立的異常數(shù)據(jù)干擾區(qū)間可對瞬時故障引起的異常數(shù)據(jù)以及因外部環(huán)境波動引起的測量誤差進行容錯,具有較強的抗干擾能力,提高了算法的容錯性能。其次,引入多通信半徑劃分最佳鄰域,減少了傳感器節(jié)點間的通信開銷,降低節(jié)點能耗使網(wǎng)絡(luò)壽命延長,提高了節(jié)點處理信息的能力,從而可在不同節(jié)點規(guī)模下達到較高的檢測精度。KNNPSOELM 算法僅考慮了單一閾值,隨著節(jié)點數(shù)目的增加,難以準(zhǔn)確判斷位于不同地理位置的節(jié)點所反應(yīng)的不同異常類型,容易產(chǎn)生誤判,致檢測精度較低。OFN 算法雖利用了分布式檢測算法的優(yōu)勢,但其異常檢測太過于依賴鄰節(jié)點信息,沒有考慮到鄰節(jié)點信息的可靠性,在傳感器節(jié)點數(shù)目較少的環(huán)境下,數(shù)據(jù)樣本較少,表現(xiàn)出較好的性能,而在節(jié)點數(shù)量較大的環(huán)境下,節(jié)點所要處理的數(shù)據(jù)樣本增多,計算產(chǎn)生的誤差也隨之增多,導(dǎo)致檢測精度下降。當(dāng)傳感器節(jié)點數(shù)目達到1 000 個時,ADABSWC 算法的事件節(jié)點檢測率可達到98.95%,相對于KNNPSOELM 和OFN 算法分別高出7.13%、3.38%。
圖5 所示為事件節(jié)點誤報率(EFP(C))的變化情況。從圖5 可以看出,隨著傳感器節(jié)點數(shù)目的增加,參與協(xié)同判斷的鄰節(jié)點數(shù)目增多,三種算法的誤報率均有所下降。KNN-PSOELM 算法當(dāng)節(jié)點數(shù)據(jù)測量值大于閾值Rth(t)時,空間相關(guān)性得到提高,雖減少了因瞬時測量值異常引起的誤報率,但與OFN算法存在相同問題,即與鄰居協(xié)作過程中沒有排除自身存在錯誤的節(jié)點,導(dǎo)致誤報率均高于ADABSWC 算法。ADABSWC 算法對異常節(jié)點的狀態(tài)進行兩階段判斷,既考慮到事件的發(fā)生與具體時刻無關(guān),而是與事件發(fā)生時刻之后的一段時間有關(guān),又考慮到與最佳鄰節(jié)點進行協(xié)作時距離因素及節(jié)點間信息相似度對判斷結(jié)果造成的影響,利用相對熵τij與鄰節(jié)點貢獻度wij對節(jié)點信息置信度λj進行修正,有效解決了以往靠單一閾值和無差別鄰節(jié)點協(xié)作對異常來源產(chǎn)生誤判的問題,從而大幅降低了節(jié)點的誤報率。當(dāng)傳感器節(jié)點數(shù)目達到1 000 個時,ADABSWC 算法的事件節(jié)點誤報率為1.3%,較KNN-PSOELM、OFN 算法分別降低18.53%、9.8%。
圖5 事件節(jié)點誤報率與節(jié)點規(guī)模的關(guān)系
圖6 和圖7 所示分別為錯誤節(jié)點檢測率(FTP(C))與錯誤節(jié)點誤報率(FFP(C))的變化情況。
圖6 錯誤節(jié)點檢測率與節(jié)點規(guī)模的關(guān)系
圖7 錯誤節(jié)點誤報率與節(jié)點規(guī)模的關(guān)系
從圖6 可看出,當(dāng)傳感器節(jié)點數(shù)目小于700 時,OFN 算法與ADABSWC 算法均保持較高的錯誤節(jié)點檢測率;當(dāng)傳感器節(jié)點數(shù)目大于700 時,OFN 算法的錯誤節(jié)點檢測率顯著低于ADABSWC 算法,原因在于OFN算法根據(jù)鄰居節(jié)點的數(shù)據(jù)得到離群因子,隨著節(jié)點規(guī)模的增加,待測節(jié)點所要處理的鄰節(jié)點數(shù)據(jù)量過多,導(dǎo)致待測節(jié)點自身能耗過大,致檢測精度降低。圖6、圖7實驗表明,隨著傳感器節(jié)點數(shù)目的增加,ADABSWC 算法仍保持較高的檢測率,較低的誤報率,這主要歸因于本文算法采用滑動窗口中一段時間的數(shù)據(jù),減少了空間錯誤節(jié)點引起誤判的情況。當(dāng)傳感器節(jié)點數(shù)目達到1 000 個時,ADABSWC 算法的錯誤節(jié)點檢測率和誤報率可分別達到98.96%、0.71%。ADABSWC 算法數(shù)據(jù)異常來源判斷經(jīng)過兩個階段,對于固定故障或瞬時故障產(chǎn)生的錯誤異常,具有較好的容錯性能,提高了節(jié)點異常類型分類的效率及準(zhǔn)確性,從而使ADABSWC 算法在不同規(guī)模的傳感器網(wǎng)絡(luò)下,均擁有較高的檢測精度。
本文提出了一種基于滑動窗口和置信度的無線傳感器網(wǎng)絡(luò)異常檢測算法。首先通過滑動窗口模型采集到的數(shù)據(jù)序列得到差值序列,計算環(huán)境因子的取值區(qū)間,從而建立異常數(shù)據(jù)干擾區(qū)間識別異常數(shù)據(jù)。根據(jù)提出的數(shù)據(jù)異常度的計算方法預(yù)判節(jié)點異常數(shù)據(jù)的來源;其次利用節(jié)點間的空間屬性,引入多通信半徑劃分最佳鄰域,選擇性地收集鄰節(jié)點信息,利用熵技術(shù)計算節(jié)點信息置信度,進行協(xié)同判斷,最終確定節(jié)點異常數(shù)據(jù)的類型。