一種自適應無參空間離群點檢測算法
【專利摘要】本發明屬于離群點挖掘領域,尤其涉及一種自適應無參空間離群點檢測算法。其特征在于,首先通過基于全局穩定的最近鄰確定算法計算出最終最近鄰居個數和對象o的空間鄰居;計算數據集O中每個對象的空間離群度;對數據集O的非空間維度屬性進行離群點檢測;設置臨界離群點;計算判定空間離群點的門限值;將SLOV大于門限的點作為潛在空間離群點;最后進行空間離群點判別。本發明算法提高了檢測精度,并根據數據特性自適應確定離群點檢測門限和對象的空間鄰域,不需要用戶給定空間離群點個數和空間鄰域個數就能自主檢測出空間離群點,克服了已有的算法對用戶依賴大的特點,實現了無參的封閉運算,為無線傳感器網絡決策剔除了異常數據。
【專利說明】
一種自適應無參空間離群點檢測算法
技術領域
[0001] 本發明屬于離群點挖掘領域,尤其涉及一種農田無線傳感器網絡數據的自適應無 參空間離群點檢測算法。
【背景技術】
[0002] 無線傳感器網絡采集到的環境數據因其自身硬件和軟件的限制,以及環境因素的 影響,極易產生異常值。而依據環境監測數據做出相應決策是精細農業的基本操作。因此, 剔除網絡異常數據對農業環境監測至關重要。
[0003]分布在監測區域內的傳感器節點對環境參數進行周期性的采集,并發送到監測平 臺上。決策者相隔一定的時間根據平臺上的數據做出決策,為了避免離群點對決策帶來的 影響,每次決策前都需要對數據進行離群點檢測。
[0004] 現有的空間離群點檢測算法對用戶依賴性大,如SLOM算法與SLOF算法,需要人工 設定空間鄰居的判定條件和離群點個數。但在無線傳感器網絡中,隨著時間的推移,網絡得 到的數據特性是動態變化的,因此很難人工設定適用于長期離群點檢測的閾值;同時,無線 傳感器網絡的一些節點會出現故障,也會加入一些新的節點,因此整個網絡的空間關系也 會改變,此外,在每次的離群點檢測中,離群點個數不能提前獲知。因此,已有的算法不適用 于無線傳感器網絡數據的離群點檢測,另外已有算法的空間離群度量方式存在誤檢和漏檢 率高的問題。
【發明內容】
[0005] 為了解決上述問題,本發明提出了一種自適應無參空間離群點檢測算法,其特征 在于,所述算法的具體步驟為
[0006] 步驟1、通過基于全局穩定的最近鄰確定算法計算出最終最近鄰居個數fk,求出每 個對象空間上最近的f k個點作為空間鄰域;得到f k后,距對象〇空間最近的f k個點即為〇的 空間鄰居,〇的所有空間鄰居組成它的空間鄰域NH(o);
[0007] 步驟2、計算每個對象的空間離群度;
[0008] 步驟3、對該數據集的非空間維度屬性進行離群點檢測;
[0009] 步驟4、針對是否存在非空間維度屬性局部離群點的兩種情況,設置臨界離群點;
[0010] 步驟5、計算判定空間離群點的門限值;
[0011 ]步驟6、將SLOV大于門限的點作為潛在空間離群點;
[0012]步驟7、進行空間離群點判別。
[0013 ]所述步驟1中基于全局穩定的最近鄰確定算法的步驟為:
[0014]步驟101、設定最近鄰居數k的初始值為1;
[0015]步驟102、計算每個對象的空間相鄰對象個數nk;
[0016]步驟103、計算k最近鄰居下沒有空間相鄰對象的點的個數nz;
[0017 ] 步驟104、當nz不為0時,令k = k+1,返回步驟102,否則轉到步驟105;
[0018] 步驟105、當ηζ = 0時,此時的k即為最終最近鄰居個數fk。
[0019] 所述步驟2中計算每個對象的空間離群度采用計算空間局部離群值SLOV的方法,
空間局部離群值SLOV (O)= ?、(〇、Λ b-: Nlh
[0020] 其中,對象〇的空間鄰居 Pb表示對象〇 的任意鄰域對象,對象〇的鄰域距, %0,對于〇i e 0,〇盧0,對象〇1與〇」的非空間屬把 3ik)表示對象
〇1第k維度標準化的非空間屬性,f(〇jk)表尸化的非空間屬性,d表示維 數,同理求得對象a與b的非空間屬性的歐£ 對象&與〇的非空間屬性的 歐氏距?
?表一個無窮小的數。
[0021] 所述步驟3中對該數據集的非空間維度屬性進行離群點檢測的方法為采用基于自 然最近鄰居搜索算法的聚類算法,該聚類算法自動確定聚類近鄰個數kl,通過確定自然最 近鄰對數進行聚類,沒有自然鄰居的點被視為局部離群點。
[0022] 所述步驟4中所述找出臨界離群點的具體過程為 [0023]情況一:存在局部離群點
[0024] (1)根據聚類算法得到最近鄰個數kl,計算每個離群點的kl近鄰離群度,找出kl近 鄰離群度最小的離群點作為基準離群點;
[0025] (2)找到距離基準離群點最近的正常點作為基準正常點,基準正常點所在的類的 所有對象為基準族,基準族中的對象間除〇外的最小距尚為dl;
[0026] (3)計算基準離群點和基準正常點之間每個維度的中值,作為待測值;
[0027] (4)將待測值與基準簇進行近鄰數為kl的聚類,若基準簇被聚成一類且待測值被 認定為離群值,則將基準離群點更新為待測值,否則將基準正常點更新為待測值;
[0028] (5)計算更新后的基準正常點與基準離群點之間的距離d2,若d2>dl,則返回步驟 (3),否則執行步驟(6);
[0029] (6)算法結束,將此時得到的基準離群點值作為臨界離群點;
[0030]情況二:不存在局部離群點 [0031]人為設定臨界離群點,具體步驟為
[0032] (1)找到非空間屬性值在每一維度上是最大值或最小值的對象,看做是簇的邊緣;
[0033] (2)得到聚類算法過程中的最近鄰個數kl;
[0034] (3)計算這些對象的kl近鄰離群度,將kl近鄰離群度最小的對象作為基準對像,基 準對象所在的類的所有對象作為基準簇;新設置一個點q,該點的屬性與基準對象的非空間 屬性相同,將點q作為待測對象,將它的d維度屬性表示為f(qd);
[0035] (4)計算基準簇的簇心,判斷基準對象每一維非空間屬性與簇心的位置關系;
[0036] (5)計算非空間屬性每一維度上對象距離除0外的最小值,共d維;
[0037] (6)將待測對象非空間i維度屬性值f(qi)更新為f (Cuhb1^1為第i維度上對象距 離除〇外的最小值,得到新的待測對象的第i維屬性值為:fXqM-irbi);
[0038] 其中,當基準點的第i維屬性值比簇心大,則指數m = 2;當基準點的第i維屬性值比 簇心小,則指數m=l;保證了待測值與簇心的距離比基準點遠,從而構造出離群點;
[0039] (7)用kl近鄰聚類算法對基準簇和待測對象進行聚類,若基準簇被聚為一類且待 測對象被判定為離群點,執行步驟(8),否則返回執行步驟(6);
[0040] (8)算法結束,將此時得到的待測對象作為臨界離群點。
[0041] 所述步驟5中所述計算判定空間離群點的門限值具體為計算臨界離群點的kl近鄰 離群度klnlof作為空間離群點判定的門限threshold。
[0042] 所述步驟7中所述空間離群點判別過程為:
[0043] (1)找到SLOV值最大的潛在離群點作為空間離群點,把它作為空間離群點,將它的 非空間屬性值更新為鄰域非空間屬性的均值;
[0044] (2)找到鄰域中包括空間里群點的對象,重新計算這些對象的空間離群度;
[0045] (3)將除了空間離群點的其它對象的空間離群度重新判別,找出新的潛在離群點;
[0046] (4)若新的潛在離群點個數不為0,則重復步驟(1)、(2)、(3),否則算法結束,輸出 所有空間離群點。
[0047] 所述空間和對象的概念指的是無線傳感器網絡的節點。
[0048] 有益效果
[0049] 針對現有技術的不足,本發明的算法提出一種新的空間離群度量方法,提高了檢 測精度,并根據數據特性自適應確定離群點檢測門限和對象的空間鄰域,不需要用戶給定 空間離群點個數和空間鄰域個數就能自主檢測出空間離群點,克服了已有的算法對用戶依 賴大的特點,實現了無參的封閉運算,為無線傳感器網絡決策剔除了異常數據。
【附圖說明】
[0050] 圖1為本發明的一種自適應無參空間離群點檢測算法的流程圖。
【具體實施方式】
[0051] 下面結合附圖,對本發明作詳細說明。圖1為本發明的一種自適應無參空間離群點 檢測算法的流程圖。本發明算法的具體步驟為:
[0052] 步驟1、通過基于全局穩定的最近鄰確定算法計算出最終最近鄰居個數fk,求出每 個對象空間上最近的f k個點作為空間鄰域;得到f k后,距對象〇空間最近的f k個點即為〇的 空間鄰居,〇的所有空間鄰居組成它的空間鄰域NH(o);
[0053]步驟2、計算每個對象的空間離群度;
[0054] 步驟3、對該數據集的非空間維度屬性進行離群點檢測;
[0055] 步驟4、針對是否存在非空間維度屬性局部離群點的兩種情況,設置臨界離群點;
[0056] 步驟5、計算判定空間離群點的門限值;
[0057]步驟6、將SLOV大于門限的點作為潛在空間離群點;
[0058]步驟7、進行空間離群點判別。
[0059] 所述步驟1中基于全局穩定的最近鄰確定算法的步驟為:
[0060] 步驟101、設定最近鄰居數k的初始值為1;
[0061 ]步驟102、計算每個對象的空間相鄰對象個數nk;
[0062] 步驟103、計算k最近鄰居下沒有空間相鄰對象的點的個數nz;
[0063] 步驟104、當nz不為0時,令k = k+1,返回步驟102,否則轉到步驟105;
[0064] 步驟105、當ηζ = 0時,此時的k即為最終最近鄰居個數fk。
[0065] 所述步驟Λ Μ""#卞間離群度采用計算空間局部離群值SLOV的方法, 空間局部離群值Si- J-;
[0066] 其中,對象〇的空間鄰居平均間H
和b表示對象〇
象〇1第1^維度標準化的非空間屬性,[0067] f (Ojk)表示對象〇j第k維度標準化的非空間屬性,d表示維數,同理求得對象a與b的 的任意鄰域對象,對象〇的鄰域距淳 義為0,對于〇i 已0,〇盧0,對象〇1與〇」的非空間屬七 f(〇ik)表示對 非空間屬性的歐氏距
:卩對象&與〇的非空間屬性的歐氏勝
代表一個無窮小的數。
[0068] 所述步驟3中對該數據集的非空間維度屬性進行離群點檢測的方法為采用基于自 然最近鄰居搜索算法的聚類算法,該聚類算法自動確定聚類近鄰個數kl,通過確定自然最 近鄰對數進行聚類,沒有自然鄰居的點被視為局部離群點。
[0069] 所述步驟4中所述找出臨界離群點的具體過程為
[0070] 情況一:存在局部離群點
[0071] (1)根據聚類算法得到最近鄰個數kl,計算每個離群點的kl近鄰離群度,找出kl近 鄰離群度最小的離群點作為基準離群點;
[0072] (2)找到距離基準離群點最近的正常點作為基準正常點,基準正常點所在的類的 所有對象為基準族,基準族中的對象間除〇外的最小距尚為dl;
[0073] (3)計算基準離群點和基準正常點之間每個維度的中值,作為待測值;
[0074] (4)將待測值與基準簇進行近鄰數為kl的聚類,若基準簇被聚成一類且待測值被 認定為離群值,則將基準離群點更新為待測值,否則將基準正常點更新為待測值;
[0075] (5)計算更新后的基準正常點與基準離群點之間的距離d2,若d2>dl,則返回步驟 (3),否則執行步驟(6);
[0076] (6)算法結束,將此時得到的基準離群點值作為臨界離群點;
[0077]情況二:不存在局部離群點
[0078] 人為設定臨界離群點,具體步驟為
[0079] (1)找到非空間屬性值在每一維度上是最大值或最小值的對象,看做是簇的邊緣;
[0080] (2)得到聚類算法過程中的最近鄰個數kl;
[0081 ] (3)計算這些對象的kl近鄰離群度,將kl近鄰離群度最小的對象作為基準對像,基 準對象所在的類的所有對象作為基準簇;新設置一個點q,該點的屬性與基準對象的非空間 屬性相同,將點q作為待測對象,將它的d維度屬性表示為f(qd);
[0082] (4)計算基準簇的簇心,判斷基準對象每一維非空間屬性與簇心的位置關系;
[0083] (5)計算非空間屬性每一維度上對象距離除0外的最小值,共d維;
[0084] (6)將待測對象非空間i維度屬性值f(qi)更新為f (Cuhb1^1為第i維度上對象距 離除〇外的最小值,得到新的待測對象的第i維屬性值為:fXqM-irbi);
[0085] 其中,當基準點的第i維屬性值比簇心大,則指數m = 2;當基準點的第i維屬性值比 簇心小,則指數m=l;保證了待測值與簇心的距離比基準點遠,從而構造出離群點;
[0086] (7)用kl近鄰聚類算法對基準簇和待測對象進行聚類,若基準簇被聚為一類且待 測對象被判定為離群點,執行步驟(8),否則返回執行步驟(6);
[0087] (8)算法結束,將此時得到的待測對象作為臨界離群點。
[0088] 所述步驟5中所述計算判定空間離群點的門限值具體為計算臨界離群點的kl近鄰 離群度klnlof作為空間離群點判定的門限threshold。
[0089] 所述步驟7中所述空間離群點判別過程為:
[0090] (1)找到SLOV值最大的潛在離群點作為空間離群點,把它作為空間離群點,將它的 非空間屬性值更新為鄰域非空間屬性的均值;
[0091 ] (2)找到鄰域中包括空間里群點的對象,重新計算這些對象的空間離群度;
[0092] (3)將除了空間離群點的其它對象的空間離群度重新判別,找出新的潛在離群點;
[0093] (4)若新的潛在離群點個數不為0,則重復步驟(1)、(2)、(3),否則算法結束,輸出 所有空間離群點。
[0094] 對某月2日與28日9點的英特爾伯克利實驗室的傳感器網絡數據進行空間離群點 檢測,步驟如下:
[0095] 1、通過基于全局穩定的最近鄰確定算法計算出的空間鄰居數為4,求出每個對象 空間上最近的4個點作為空間鄰域。
[0096] 2、計算每個對象的空間離群值SL0V。
[0097] 3、對該數據集的非空間維度屬性進行離群點檢測,得到一個離群點,該點即基準 咼群點。
[0098]找到非空間屬性距該離群點最近的正常點,為基準正常點,該正常點所在的簇為 基準簇。
[0099] 4、由于得到了局部離群點,因此采用上文提到的不斷采中值法找到臨界離群點。
[0100] 5、計算臨界離群點的kl近鄰離群度作為門限。
[0101] 6、將SLOV大于門限的點作為潛在離群點。
[0102] 7、找到SLOV值最大的潛在離群點作為空間離群點,重新計算鄰域中包含該點的對 象的SLOV值。重新尋找潛在離群點,直到找到所有空間里群點。
【主權項】
1. 一種自適應無參空間離群點檢測算法,其特征在于,所述算法的具體步驟為 步驟1、通過基于全局穩定的最近鄰確定算法計算出最終最近鄰居個數fk,求出數據集 0中每個對象空間上最近的fk個點作為空間鄰域;得到fk后,距對象0空間最近的fk個點即 為0的空間鄰居,0的所有空間鄰居組成它的空間鄰域NH(o); 步驟2、計算每個對象的空間離群度; 步驟3、對該數據集的非空間維度屬性進行離群點檢測; 步驟4、針對是否存在非空間維度屬性局部離群點的兩種情況,設置臨界離群點; 步驟5、計算判定空間離群點的口限值; 步驟6、將空間局部離群值化0V大于口限的點作為潛在空間離群點; 步驟7、進行空間離群點判別。2. 根據權利要求1所述的一種自適應無參空間離群點檢測算法,其特征在于,所述步驟 1中基于全局穩定的最近鄰確定算法的步驟為: 步驟101、設定最近鄰居數k的初始值為1; 步驟102、計算每個對象的空間相鄰對象個數nk; 步驟103、計算k最近鄰居下沒有空間相鄰對象的點的個數nz; 步驟104、當nz不為加寸,令k = k+l,返回步驟102,否則轉到步驟105; 步驟105、當nz = 0時,此時的k即為最終最近鄰居個數fk。3. 根據權利要求1所述的一種自適應無參空間離群點檢測算法,其特征在于,所述步驟 2中計算每個對象的空間離群度采用計算空間局部離群值化OV的方法,空間局部離群值其中,對象0的空間鄰居平均間圓a和b表示對象0的任 意鄰域對象,對象0的鄰域距?對于oi e 0,oj e 0,對象oi與oj的非 空間屬性的歐氏距離;f(〇ik)表示對象〇1第k維度標準化的非空 間屬性,f(〇A)表示對象W第k維度標準化的非空間屬性,d表示維數,同理求得對象a與b的 非空間屬性的歐氏距離: 代表一個無窮小的數。4. 根據權利要求1所述的一種自適應無參空間離群點檢測算法,其特征在于,所述步驟 3中對該數據集的非空間維度屬性進行離群點檢測的方法為采用基于自然最近鄰居捜索算 法的聚類算法,該聚類算法自動確定聚類近鄰個數kl,通過確定自然最近鄰對數進行聚類, 沒有自然鄰居的點被視為局部離群點。5. 根據權利要求1所述的一種自適應無參空間離群點檢測算法,其特征在于,所述步驟 4中所述找出臨界離群點的具體過程為 情況一:存在局部離群點 (1) 根據聚類算法得到最近鄰個數kl,計算每個離群點的kl近鄰離群度,找出kl近鄰離 群度最小的離群點作為基準離群點; (2) 找到距離基準離群點最近的正常點作為基準正常點,基準正常點所在的類的所有 對象為基準簇,基準簇中的對象間除0外的最小距罔為dl; (3) 計算基準離群點和基準正常點之間每個維度的中值,作為待測值; (4) 將待測值與基準簇進行近鄰數為kl的聚類,若基準簇被聚成一類且待測值被認定 為離群值,則將基準離群點更新為待測值,否則將基準正常點更新為待測值; (5) 計算更新后的基準正常點與基準離群點之間的距離d2,若d2〉dl,則返回步驟(3), 否則執行步驟(6); (6) 算法結束,將此時得到的基準離群點值作為臨界離群點; 情況二:不存在局部離群點 人為設定臨界離群點,具體步驟為 (1) 找到非空間屬性值在每一維度上是最大值或最小值的對象,看做是簇的邊緣; (2) 得到聚類算法過程中的最近鄰個數kl; (3) 計算運些對象的kl近鄰離群度,將kl近鄰離群度最小的對象作為基準對像,基準對 象所在的類的所有對象作為基準簇;新設置一個點q,該點的屬性與基準對象的非空間屬性 相同,將點q作為待測對象,將它的d維度屬性表示為f(qd); (4) 計算基準簇的簇屯、,判斷基準對象每一維非空間屬性與簇屯、的位置關系; (5) 計算非空間屬性每一維度上對象距離除0外的最小值,共d維; (6) 將待測對象非空間i維度屬性值f(qi)更新為f(qi)+bi,b功第i維度上對象距離除0 夕F的最小值,得到新的待測對象的第i維屬性值為:f(qi+(-irbi); 其中,當基準點的第i維屬性值比簇屯、大,則指數m = 2;當基準點的第i維屬性值比簇屯、 小,則指數m=l;保證了待測值與簇屯、的距離比基準點遠,從而構造出離群點; (7) 用kl近鄰聚類算法對基準簇和待測對象進行聚類,若基準簇被聚為一類且待測對 象被判定為離群點,執行步驟(8),否則返回執行步驟(6); (8) 算法結束,將此時得到的待測對象作為臨界離群點。6. 根據權利要求1所述的一種自適應無參空間離群點檢測算法,其特征在于,所述步驟 5中所述計算判定空間離群點的口限值具體為計算臨界離群點的kl近鄰離群度klnlof作為 空間離群點判定的口限thresho 1 d。7. 根據權利要求1所述的一種自適應無參空間離群點檢測算法,其特征在于,所述步驟 7中所述空間離群點判別過程為: (1) 找到化0V值最大的潛在離群點作為空間離群點,把它作為空間離群點,將它的非空 間屬性值更新為鄰域非空間屬性的均值; (2) 找到鄰域中包括空間里群點的對象,重新計算運些對象的空間離群度; (3) 將除了空間離群點的其它對象的空間離群度重新判別,找出新的潛在離群點; (4) 若新的潛在離群點個數不為0,則重復步驟(1)、(2)、(3),否則算法結束,輸出所有 空間離群點。8.根據權利要求1所述的一種自適應無參空間離群點檢測算法,其特征在于,所述空間 和對象的概念指的是無線傳感器網絡的節點。
【文檔編號】G06F19/00GK105844102SQ201610178994
【公開日】2016年8月10日
【申請日】2016年3月25日
【發明人】高紅菊, 劉艷哲, 劉繼文, 儲汪兵
【申請人】中國農業大學