孤立點是資料集中不符合一般模型的那些物件,即和其它 的資料有著不同的性質。它可能是度量或執行錯誤所導致的,也可能是固有資料變異性的結果。對此,hawkins[1]給出了其本質性定義:孤立點是在資料集中與眾不同的資料,使人懷疑這些資料 並非隨機偏差,而是產生於完全不同的機制。
一般的,孤立點挖掘問題可以被看作兩個子問題[1]:(1)在給定的資料集合中定義什麼樣的資料可以被認為不一致的;(2)找到乙個有效的方法來挖掘這樣的孤立點。
孤立點探測是資料探勘中乙個重要方面,用來發現"小的模式"(相對於聚類),即資料集中間顯著不同於其它資料的物件。孤立點探測演算法大致可以分為基於統計(statistical-based)的方法,基於距離(distance-based)的方法,基於偏差(deviation-based)的方法,基於密度(density-based)的方法,以及高維資料的孤立點探測。孤立點挖掘有著廣泛的應用:在信用卡欺詐探測中發現的孤立點可能預示著欺詐行為,而及時發現這種信用卡欺詐行為對商業銀行而言相當重要,可以避免不必要的經濟損失;在市場分析中,可用於確定極低或極高收入的客戶的消費行為;在醫療分析中,可用於對多種**方式的不尋常的反應等;在網路安全方面;孤立點挖掘應用於網路入侵檢測;在資料質量分析中,可以用孤立點挖掘演算法檢測錯誤資料;此外還可以應用到氣象預報、個人隱私保護等方面。
基於統計的方法假設給定的資料集服從乙個隨機分布(如正態分佈等),用不一致性測試()識別孤立點。但是這種方法存在乙個問題:在許多情況下,使用者並不知道這個資料分布,而且現實資料也往往不符合任何一種理想狀態的數學分布;即使在低維(一維或二維)時的資料分布已知,在高維情況下,估計資料點的分布也是極其困難的。
knorr和ng[2] 提出一種基於距離的孤立點探測方法:資料集s中至少p*100%的物件與o的距離大於距離d。採用不同的引數p和d,db(p,d)-outlier可以表示所有的基於統計的孤立點。在基於距離的孤立點定義下,分別有基於索引(index-based)的演算法,巢狀迴圈(nested-loop)演算法和基於單元(cell-based)的演算法。 基於索引的演算法可以通過對最近鄰查詢或以o為中心的範圍查詢的回答來實現尋找所有db(p,d)-outlier。基於多維索引結構r-tree或kd-tree演算法複雜度是o(kn2),但它的缺點是: 需要建立多維索引結構,費時;巢狀迴圈演算法將記憶體緩衝區空間劃分成相等的兩部分,資料集分成幾個大小和每部分緩衝區相等的邏輯塊,通過認真選擇調入每一部分緩衝區的次序,使i/o次數最小演算法複雜度是o(kn2),它具有:不需要建立多維索引結構,但選擇劃分區域也較費時的特點。 基於單元(cell-based)的方法:資料空間被劃分為邊長為d/2k1/2的單元;每個單元有兩個包圍層;第一層為1倍的單元厚,第二層為int(2k1/2-1)+1倍的單元厚。 對於該種基於距離的方法小結:由於索引建立的開銷很大,簡單索引演算法沒有競爭性;當k<=4時,基於單元的演算法在n越大時優越性越明顯;當k>=5之後,巢狀迴圈演算法開始顯現出優 勢。
knorr和ng基於距離的孤立探測方法的缺陷在於:輸入參 數p與d很難確定,並且對於不同引數,結果有很大不穩定性。這就需要使用者反覆輸入p與d進行測試,以確定乙個滿意解;不能給定孤立的程度,且演算法的複雜度較高。rastogi和ra-maswamy[3]提出了乙個新的基於距離孤立點定義,用dk(p)表示點p和它的第k個最近鄰的距離,給定d維空間中包含n個點的資料集,引數n和k(自然數),如果滿足dk(p)>dk(p')的點p'不超過n-1個,那麼稱p為dnk孤立點。如果對資料點根據它們的 dk(p)距離進行排序,那麼前n個點就被看作孤立點。迴圈巢狀演算法(nested-loopalgorithm)作為改進後的基於距離的演算法,每次處理乙個點p,需要掃瞄一遍資料庫,總共需要掃瞄n遍(n為資料點數)。基於索引的演算法(index-basedal-gorithm)用類似r*-樹的空間索引結構儲存,可以減少掃瞄資料庫的次數。 改進後的基於劃分的演算法,如果某個點的dk(p)較小的話,那麼不可能是dnk孤立點,可以先對資料集進行劃分,然後估計 每個劃分的dk(p)的上、下界,如果能判定某個劃分不可能包含孤立的話,那麼就可以直接把它刪除掉;然後再從剩下的劃分(侯選劃分)來計算孤立點;現有的許多聚類演算法可以用來劃分資料集,如birch演算法。
argrawal和ragaran提出了"序列孤立"(sequentialexcep-tion)的概念中,對於給定n個物件的集合s,建立乙個子集序列{s1,s2,…,sm},對每個子集,確定該子集與前序子集的差異度的 差。為減少輸入資料的順序對結果的影響,可以用不同的次序多次重複上述過程,找出其中光滑因子最大的子集。 這個演算法複雜度與資料集大小呈線性關係,有優異的計算效能。 但是序列孤立在對孤立存在的假設太過理想化,對現實複雜資料效果不太好。
基於距離的方法對全域性各個聚類的資料提出了統一的p和d的引數,但是如果各個聚類本身的密度存在不同,則基於距離的方法則出出現問題,因此提出了基於密度模型的區域性異常點挖掘演算法,通過區域性異常點因子lof的計算來確定異常點, 只要乙個物件的lof遠大於1, 它可能就是乙個異常點。簇內靠近核心點的物件的lof接近於1,處於簇的邊緣或是簇的外面的物件的lof相對較大,這樣便能檢測到區域性異常點,更貼近於實際的資料集的特性。這種傳統的區域性異常點的挖掘演算法的主要問題在於區域性範圍的引數minpts值存在選擇上的困難,可以運用多粒度偏差因子代替minpts來評價,這樣便能得到比較好的解決方案。
基於聚類的方法的基本思想是將孤立點挖掘的過程轉換成聚類的過程。首先將資料集利用已經成熟的模型進行聚類分析,是資料集形成簇,而那些不在簇中的樣本點即被視為異常點進行再處理。除了上述所述的4中基本的聚類方法外,還包括基於網格的的方法等。
基於統計的孤立挖掘應用主要侷限於科研計算,這主要是因為必須事先知道資料的分布特徵這就限制了它的應用範圍。 序列孤立挖掘演算法提出的序列孤立的概念並沒有得到普遍的認同。這是因為序列孤立在概念上仍然有一定缺陷,遺漏了不少的孤立資料。 基於距離的演算法跟基於統計的演算法相比,不需要使用者擁有任何領域知識。與"序列孤立"相比,在概念上更加直觀。更重要的是,距離孤立更接近hawkins的孤立本質定義。
基於密度的孤立觀點比基於距離的孤立觀點更貼近hawkins的孤立定義,因此能夠檢測出基於距離孤立演算法所不 能識別的一類孤立資料-區域性孤立。 區域性孤立點觀點擯棄了以前所有的孤立點定義中非此即彼的絕對孤立觀念,更加符合現實生活中的應用。 實際資料往往具有較大的雜訊,因此孤立模式經常只存在於低維子空間中,而在高維空間中難以確定;且以前演算法在維數較高時,效能急劇下降。因此aggarwal和yu提出的高維資料孤立挖掘的方法,採用遺傳優化演算法,獲得良好的計算效能。 近幾年來,孤立點挖掘演算法取得了許多進展:將基於距離和基於密度的演算法並行化,能顯著提高演算法的效能;將高維空間中的點對映到低維空間,進而發現孤立點是高維資料孤立點挖掘的常用措施;而孤立點挖掘演算法在氣象資料分析,基因資料分析,個人隱私保護等方面的應用,也顯示出孤立點挖掘演算法具有獨特的應用價值。當資料維數較高時,傳統孤立點挖掘演算法效能急劇下降,高維資料的孤立點的挖掘仍然是研究的難點。
孤立點分析常用方法
孤立點是指資料集中那些小模式資料,它可能是度量或執行錯誤所導致的,也可能是固有資料變異性的結果。hawkins給出了其本質性定義 孤立點是在資料集中與眾不同的資料,使人懷疑這些資料並非隨機偏差,而是產生於完全不同的機制。一般的孤立點挖掘中存在兩個基本任務 一是在給定的資料集合中定義什麼樣的資料可以被...
孤立森林 實現 孤立森林演算法介紹,這次終於看懂了!
孤立森林演算法應用於網路安全中的攻擊檢測,金融交易欺詐檢測,疾病偵測,和雜訊資料過濾等。1.孤立森林簡介 iforest isolationforest 孤立森林是乙個基於ensemble 的快速異常檢測方法,具有線性時間複雜度和高精準度,是符合大資料處理要求的state of the art演算法...
孤立森林 實現 孤立森林演算法介紹,這次終於看懂了
孤立森林演算法應用於網路安全中的攻擊檢測,金融交易欺詐檢測,疾病偵測,和雜訊資料過濾等。1.孤立森林簡介 iforest isolationforest 孤立森林是乙個基於ensemble 的快速異常檢測方法,具有線性時間複雜度和高精準度,是符合大資料處理要求的state of the art演算法...