基于top-k(σ)算法的異常數(shù)據(jù)檢測(cè)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及一種無線傳感器網(wǎng)絡(luò)異常數(shù)據(jù)檢測(cè)方法,具體是設(shè)及一種基于 t〇p-k(〇 )算法的無線傳感器網(wǎng)絡(luò)異常數(shù)據(jù)檢測(cè)方法。
【背景技術(shù)】
[0002] 在真實(shí)的生活環(huán)境中存在很多物理現(xiàn)象(比如溫度、濕度、大氣壓力等)都需要持 續(xù)地被監(jiān)測(cè)。無線傳感器網(wǎng)絡(luò)作為一種非常重要的數(shù)據(jù)來源,其采集的數(shù)據(jù)非常容易受到 各種噪聲來源的影響,比如節(jié)點(diǎn)軟硬件故障,節(jié)點(diǎn)通信時(shí)遇到的環(huán)境噪聲。該些噪聲會(huì)嚴(yán)重 影響傳感器的讀數(shù),W及數(shù)據(jù)的分布情況,導(dǎo)致傳感器產(chǎn)生不精確的或不正確的數(shù)據(jù)。因 此,設(shè)計(jì)一種有效的數(shù)據(jù)流分析處理方法是近年來無線傳感器網(wǎng)絡(luò)異常檢測(cè)研究的重點(diǎn)。
[0003] 異常檢測(cè)技術(shù)在各個(gè)領(lǐng)域中都是一個(gè)深入研究的問題,無線傳感器網(wǎng)路獨(dú)特的特 點(diǎn)W及嚴(yán)格的約束條件使得該問題的研究更具有挑戰(zhàn)性。針對(duì)無線傳感器網(wǎng)路中的異常數(shù) 據(jù)檢測(cè)問題,目前已經(jīng)提出過很多種方法,該些方法可W分為基于分布的、基于深度的、基 于聚類的、基于距離的W及基于密度的方法。此外,按照傳感器網(wǎng)絡(luò)體系機(jī)構(gòu)異常檢測(cè)技術(shù) 又可W集中分為集中式的和分布式的。
[0004] 化ai化SA等人提出的基于top-k算法在數(shù)據(jù)挖掘等領(lǐng)域中具有廣泛的應(yīng)用,該 算法主要是通過構(gòu)造構(gòu)造數(shù)據(jù)列表,將列表中的某列按數(shù)據(jù)特征進(jìn)行升序排列,從而進(jìn)行 異常數(shù)據(jù)的判斷,該方法的優(yōu)點(diǎn)是根據(jù)構(gòu)造的數(shù)據(jù)列表可W直觀地識(shí)別異常數(shù)據(jù)點(diǎn)分布的 區(qū)域及數(shù)目,且該方法在無線傳感器網(wǎng)絡(luò)異常數(shù)據(jù)檢測(cè)應(yīng)用中尚未見到。但是,由于目前大 規(guī)模無線傳感器網(wǎng)絡(luò)數(shù)據(jù)異常值的出現(xiàn)并無特定規(guī)律,如果傳感器采集到的無線傳感網(wǎng)絡(luò) 數(shù)據(jù)的異常值持續(xù)、頻繁出現(xiàn),或者異常值在正常值周圍分布比較均勻時(shí),基于top-k算法 的無線傳感器網(wǎng)絡(luò)異常檢測(cè)方法則不能有效地檢測(cè)出異常值。
[0005] 因此,需要提出一種新型的無線傳感器網(wǎng)絡(luò)異常值檢測(cè)方法。
【發(fā)明內(nèi)容】
[0006] 發(fā)明目的;為了克服現(xiàn)有技術(shù)中存在的不足,本發(fā)明提供一種高檢測(cè)率和低誤報(bào) 率的基于top-k( 0 )算法的異常數(shù)據(jù)檢測(cè)方法。
[0007] 技術(shù)方案:為實(shí)現(xiàn)上述目的,本發(fā)明的提供的一種基于top-k(o)算法的異常數(shù) 據(jù)檢測(cè)方法,包括W下步驟:
[000引 S1 ;將傳感器節(jié)點(diǎn)采集的數(shù)據(jù)進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化處理;
[0009] S2 ;根據(jù)處理后的數(shù)據(jù)的分布規(guī)律構(gòu)造數(shù)據(jù)單元格,該數(shù)據(jù)單元格包括若干個(gè)小 數(shù)據(jù)單元格,小數(shù)據(jù)單元格表示為Cwj.,其中i表示小數(shù)據(jù)單元格的行號(hào)W及j表示小數(shù)據(jù) 單元格的列號(hào);
[0010] S3 ;構(gòu)造PC列表,所述PC列表包括四列數(shù)據(jù),第一列數(shù)據(jù)表示小數(shù)據(jù)單元格Cw 的位置,第二列數(shù)據(jù)表示該小數(shù)據(jù)單元格Cwj.中數(shù)據(jù)點(diǎn)的個(gè)數(shù),第二列數(shù)據(jù)用N(c)表示,第 S列數(shù)據(jù)Nd(C)表示該小數(shù)據(jù)單元格Cwj.的D領(lǐng)域內(nèi)的數(shù)據(jù)點(diǎn)的個(gè)數(shù),第S列數(shù)據(jù)用ND(C) 表示,第四列數(shù)據(jù)RD表示分布數(shù)據(jù)集到中屯、數(shù)據(jù)集的距離,第四列數(shù)據(jù)用RD表示;
[0011] S4 ;將小數(shù)據(jù)單元格Cw中數(shù)據(jù)點(diǎn)的個(gè)數(shù)填入所述PC列表中與該小數(shù)據(jù)單元格 Cw對(duì)應(yīng)的第二列數(shù)據(jù)中,將小數(shù)據(jù)單元格CW的D領(lǐng)域內(nèi)的數(shù)據(jù)點(diǎn)的個(gè)數(shù)填入所述PC列 表中與該小數(shù)據(jù)單元格Cwj對(duì)應(yīng)的第=列數(shù)據(jù)中,將分布數(shù)據(jù)集到中屯、數(shù)據(jù)集的距離填入 所述PC列表中與該小數(shù)據(jù)單元格Cwj對(duì)應(yīng)的第四列數(shù)據(jù)中。
[0012] S5 ;將所述PC列表中的第S列數(shù)據(jù)進(jìn)行升序排列;
[001引 S6 ;將排列后的PC列表中位于上層位置的對(duì)應(yīng)的小數(shù)據(jù)單元格Cw中的數(shù)據(jù)點(diǎn) 作為潛在異常數(shù)據(jù)點(diǎn);
[0014] S7 ;將所述潛在異常數(shù)據(jù)點(diǎn)對(duì)應(yīng)的小數(shù)據(jù)單元格Cw對(duì)應(yīng)的第四列數(shù)據(jù)分別與闊 值0進(jìn)行比較,如果第四列數(shù)據(jù)大于闊值0,則與該第四列數(shù)據(jù)對(duì)應(yīng)的小數(shù)據(jù)單元格Cw 內(nèi)的數(shù)據(jù)點(diǎn)為異常數(shù)據(jù)點(diǎn),否則與該第四列數(shù)據(jù)對(duì)應(yīng)的小數(shù)據(jù)單元格Cwj.內(nèi)的數(shù)據(jù)點(diǎn)為正 常數(shù)據(jù)點(diǎn)。
[0015] 進(jìn)一步地,步驟S3中所述小數(shù)據(jù)單元格Cwj的D領(lǐng)域表示^點(diǎn)〇為中屯、,D為半 徑的領(lǐng)域,其中所述點(diǎn)0位于所述小數(shù)據(jù)單元格Cwj.的正中屯、,所述半徑D為正數(shù)。
[0016] 進(jìn)一步地,步驟S3中計(jì)算分布數(shù)據(jù)集到中屯、數(shù)據(jù)集的距離包括W下步驟:
[0017]S31;設(shè)傳感器節(jié)點(diǎn)采集的所有數(shù)據(jù)點(diǎn)的集合為樣本集r,所述中屯、數(shù)據(jù)集是指 所述樣本集r中正常數(shù)據(jù)點(diǎn)的集合,所述分布數(shù)據(jù)集是指所述樣本集r中任一子集;
[0018] S32;設(shè)數(shù)據(jù)點(diǎn)〇1是所述中屯、數(shù)據(jù)集的中屯、數(shù)據(jù)點(diǎn),設(shè)數(shù)據(jù)點(diǎn)〇2是所述分布數(shù)據(jù)集 的中屯、數(shù)據(jù)點(diǎn);
[0019]S33 ;計(jì)算所述數(shù)據(jù)點(diǎn)〇1和所述數(shù)據(jù)點(diǎn)02之間的歐式距離,則所述數(shù)據(jù)點(diǎn)0 1和所 述數(shù)據(jù)點(diǎn)〇2之間的歐式距離為所述分布數(shù)據(jù)集到所述中屯、數(shù)據(jù)集的距離。
[0020] 進(jìn)一步地,步驟S7中所述闊值0的取值范圍是2. 5~3。
[002U 有益效果;本發(fā)明提出的基于top-k(0 )算法主要是針對(duì)現(xiàn)有技術(shù)中基于top-k 算法的改進(jìn),具有的優(yōu)點(diǎn)是:
[0022] 1、利用基于top-k算法對(duì)異常值進(jìn)行檢測(cè)時(shí),當(dāng)異常點(diǎn)在某個(gè)單元格內(nèi)分布比較 密集時(shí),根據(jù)Nd(C)所在的列按升序排列后,異常點(diǎn)所在的數(shù)據(jù)單元格就不會(huì)位于PC列表 的前幾行,該樣容易將異常值誤判為正常值;或者當(dāng)正常數(shù)據(jù)點(diǎn)分布疏散,根據(jù)Nd(C)所在 的列按升序排列后,正常數(shù)據(jù)點(diǎn)所在的數(shù)據(jù)單元格可能會(huì)出現(xiàn)在PC列表的前幾行,該樣容 易將正常值誤判為異常值;而本發(fā)明通過增設(shè)距離闊值0和PC列表中數(shù)據(jù)列RD,利用位 于PC列表中前幾行的RD的值與闊值0進(jìn)行比較來判定無線傳感器網(wǎng)絡(luò)數(shù)據(jù)異常情況,有 效避免了把異常值誤判為正常值或者有效避免了將正常值誤判為異常值,大大降低了本發(fā) 明算法的誤報(bào)率,通過具體仿真實(shí)驗(yàn)發(fā)現(xiàn),本發(fā)明提出的算法的誤報(bào)率比基于top-k算法 降低了 4.48% ;
[0023] 2、本發(fā)明通過調(diào)整闊值0的取值大大提高了本發(fā)明算法的檢測(cè)率,通過具體仿 真實(shí)驗(yàn)發(fā)現(xiàn),本發(fā)明提出的算法檢測(cè)率達(dá)到了 93. 7%,本發(fā)明的算法與基于top-k算法比 較檢測(cè)率提高了 4.94%。
【附圖說明】
[0024] 圖1是本發(fā)明提出的基于top-k(0)算法的異常數(shù)據(jù)檢測(cè)方法的流程圖;
[0025] 圖2是單元格領(lǐng)域示意圖;
[0026] 圖3是分布數(shù)據(jù)集到中屯、數(shù)據(jù)集的距離示意圖;
[0027] 圖4是樣本數(shù)據(jù)分布示意圖;
[002引 圖5是不同的闊值0所對(duì)應(yīng)的top-k(0)算法的檢測(cè)率;
[0029] 圖6是不同的闊值0所對(duì)應(yīng)的top-k(0)算法的誤報(bào)率;
[0030] 圖7是基于top-k算法和基于top-k(0)算法兩種算法的檢測(cè)率的對(duì)比圖; [003U圖8是基于top-k算法和基于top-k(0)算法兩種算法的誤報(bào)率的對(duì)比圖。
【具體實(shí)施方式】
[0032] 下面結(jié)合實(shí)施例對(duì)本發(fā)明作更進(jìn)一步的說明。
[003引本發(fā)明提出的一種基于top-k(o)算法的異常數(shù)據(jù)檢測(cè)方法,參照?qǐng)D1,當(dāng)無線傳 感器網(wǎng)絡(luò)應(yīng)用于環(huán)境檢測(cè)時(shí),傳感器節(jié)點(diǎn)采集的數(shù)據(jù)屬性包括溫度、濕度、大氣壓力等,該 些數(shù)據(jù)屬性的度量單位不一致,所W在利用本發(fā)明的方法時(shí)首先需要對(duì)傳感器節(jié)點(diǎn)采集的 數(shù)據(jù)進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化處理;
[0034] 然后根據(jù)處理后的數(shù)據(jù)的分布規(guī)律構(gòu)造數(shù)據(jù)單元格,數(shù)據(jù)點(diǎn)分布在數(shù)據(jù)單元格 中,該數(shù)據(jù)單元格是由若干個(gè)小數(shù)據(jù)單元格組成,也可W說是由若干個(gè)矩形網(wǎng)格組成,其中 每一個(gè)小數(shù)據(jù)單元格可W表示為Cwj.,其中i表示小數(shù)據(jù)單元格在數(shù)據(jù)單元格中的行號(hào)W 及j表示小數(shù)據(jù)單元格在數(shù)據(jù)單元格中的列號(hào),參照?qǐng)D4,數(shù)據(jù)單元格是一個(gè)7行7列的數(shù) 據(jù)單元格W第7行第5列的小數(shù)據(jù)單元格為例,該小數(shù)據(jù)單元格表示為
[0035] 接著構(gòu)造PC列表,所述PC列表包括