離羣點檢測

離羣點檢測算法

  • 問題一:如何根據客戶的消費記錄記錄檢測是否爲異常刷卡消費?
  • 問題二:如何檢測是否有異常訂單?
  • 這一類問題能夠經過異常點來檢測
  • 離羣點檢測是數據挖掘中重要的一部分,它的任務是發現與大部分其餘對象顯著不一樣的對象,大部分數據挖掘方法都將這種差別信息視爲噪聲而丟棄,然而在一些應用中,罕見的數據可能蘊含着更大的研究價值,
  • 在數據散步圖中,由於離羣點的屬性值明顯偏離指望的或常見的屬性值,因此離羣點檢測也稱誤差檢測
  • 離羣點檢測已經被普遍應用於電信和信用卡的詐騙檢測,貸款審批,電子商務,網絡入侵和天氣預報等領域,例如,能夠利用離羣點檢測分析運動員的統計數據,以發現異常運動員.
  • 離羣點的成因
    • 離羣點的主要成因有:數據來源於不一樣的類,天然變異,數據測量和收集偏差
  • 離羣點的類型:
    • 離羣點飛類表以下:
    • 分類標準
      分類名稱
      分類描述
      從屬性的個數 一維離羣點和多維離羣點 一個對象可能有一個或多個屬性
      從數據類型 數值型離羣點和分類型離羣點 這是以數據集類型劃分的
      從數據範圍 全局離羣點和局部離羣點 從總體看,某些對象沒有離羣特徵,可是從局部來看,卻顯示了必定的離羣性.
    • 離羣點檢測方法
    • 離羣點檢測方法
      方法描述
      方法評估
      基於密度 考慮數據可能存在於不一樣密度區域這一事實,從基於密度觀點分析,離羣點是在低密度區域中的對象,一個對象的離羣點得分是該對象周圍密度的逆 給出了對象是離羣點的定量度量,而且即便數據具備不一樣區域也能很好處理,大數據集不適用,參數選座位是困難的
      基於統計 大部分的基於統計的離羣點檢測方法是構建一個機率分佈模型,並計算對象符合該模型的機率,把具備低機率的對象視爲離羣點 基於統計模型的離羣點檢測前提是必須直到數據集服從什麼分佈,對於高維數據,檢驗效果可能不好
      基於聚類 一種利用聚類檢測離羣點的方法是丟棄遠離其餘簇的小簇,另外一種更系統的方法,首先聚類全部對象,而後評估對象屬於簇的 程度(離羣點得分) 基於聚類技術發現離羣點多是高度有效的;聚類算法產生的簇的質量對該算法產生的離羣點的質量影響很是大.
      基於鄰近度 一般能夠在數據對象之間定義鄰近性度量,把遠離大部分點的對象視爲離羣點 簡單,二維或三維數據能夠作散點圖觀察,大數據集不適用,對於選擇敏感,具備全局閾值,不能處理具備不一樣密度區域數據集
    • 基於統計模型的離羣點檢測方法須要知足統計學原理,若是分佈已知,則檢測可能很是有效,基於鄰近度的離羣點檢測方法比統計學方法更通常,更容易使用,由於肯定數據集有意義的鄰近度量比肯定它的統計分佈更容易,基於密度的離羣點檢測與基於鄰近度離羣點檢測密切相關,由於密度經常使用鄰近度定義,一種是定義密度爲到K個最鄰近的平均距離的倒數,若是該距離小,則密度高,另外一種是使用DBSCAN聚類算法,一個對象周圍的密度等於該對象指定距離d內對象個數.
    • 基於模型的離羣點檢測方法
      • 經過估計機率分佈的參數來創建一個數據模型.若是一個數據對象不能很好的嗯同該模型擬合,即若是它極可能不服從該分佈,則它是一個離羣點.
      • 一元正太分佈中的離羣點檢測
      • 正太分佈是統計學中最經常使用的分佈之一.
      • 若隨機變量x的密度函數φ(x) = 1 / (2π)1/2e-(x-u)2 / 2σ2(x€R),則稱x服從正太分佈,簡稱x服從正太分佈N(μ,σ),其中參數μ和σ分別爲均值和標準差
      • N(0,1)的數據對象出如今該分佈的兩邊尾部的機會很小,所以能夠用它做爲檢測數據對象是不是離羣點的基礎,數據對象落在3倍標準差中西想你區域以外的機率僅有0.0027
      • 混合模型的離羣點檢測
      • 這裏先介紹一下混合模型,混合模型是一種特殊的統計模型,它使用若干統計分佈對數據建模.每個分佈對應一個簇,而每一個分佈的參數提供對應的簇的描述,一般用中心和發散描述
      • 混合模型將數據看做從不一樣的機率分佈獲得的觀測值的集合,機率分佈能夠是任何分佈,可是一般是多元正太的,由於鄭重類型的分佈不難理解,容易從數學上進行處理,而且已經證實在許多狀況下能產生好的結果,這種類型的分佈能夠對橢圓簇建模
      • 總的來講,混合模型書產生過程爲:給定幾個類型形同但參數不一樣的分佈,隨機地選取一個分佈並由它產生一個對象.重複該過程m次,其中m是對象的個數
      • 具體的來說,假定有K個分佈和m個對象χ = {x1, x2, x3, ..., xm}.設第j個分佈的參數爲αj,並設A是全部參數的集合,即A = {α1, α2, ..., αk}.則P(xi | αj)是第i和對象來自j個分佈的機率,選取第j個分佈產生一個對象的機率由權值ωj(1 ≤ j ≤ K)給定,其中權值(機率)受限於其和爲1的約束,即∑kj=1ωj = 1.因而,對象x的機率由一下公式給出:
        • P(x | A) = ∑kj=1ωjPj(x | θj)
      • 若是對象以獨立的方式產生,則整個對象集的機率是每一個個體對象xi的機率的乘積,公式以下:
        • P(x | α) = ∏mi=1P(xi | α) = ∏mi=1∑kj=1ωjPj(x | αj)
      • 對於混合模型,每一個分佈描述一個不一樣的組,即一個不一樣的簇,經過使用統計方法,能夠由數據估計這些分佈的參數,從而描述這些分佈(簇).也能夠識別那個對象屬於那個簇,然而,混合模型只是給出具體對象屬於特定簇的機率
      • 聚類時,混合模型方法假定數據來自混合機率分佈,而且每一個簇能夠用這些分佈之一識別,一樣,對於離羣點檢測,用兩個分佈的混合模型建模,一個分佈視爲正常數據,另外一個爲離羣點
      • 聚類和離羣點檢測的目標都是估計分佈的參數,以最大化數據的總似然
      • 咱們提供一種離羣點檢測經常使用的簡單方法,先將全部數據對象放入正常數據集,這時離羣點集爲空集;再用一個迭代過程將數據對象從正常數據集轉移到離羣點集,該轉移能提升數據的總似然.
        • 具體的才這樣以下:
      • 假設數據集U包含來自兩個該v分佈的書對象;M是大多數(正常)數據對象的分佈,而N是離羣點對象分佈.數據的總機率分佈能夠記做:
        • U(x) = (1-λ)M(x) + λN(x)其中, x是一個數據對象;λ€[0,1],給出離散羣點的指望比例.分佈M由數據估計獲得,而分佈N一般去均勻分佈.設Mt和Nt分別爲時刻t正常數據和離羣點對象的集合,初始t=0,M0 = D,而N0 ≠ Φ.
        • 根據公式混合模型中公式P(x | A) = ∑kj=1ωjPj(x | αj)推導,再整個數據集的似然和對數似然分別由下面公式給出
          • Lt(U) = ∏xi € U Pu(xi) = ((1 - λ) | Mt | ∏xi € Mi PMi(xi))(λ | Nt | ∏xi €NiPNi(xi))
          • lnLt(U) = | Mt |ln(1-λ) + ∑xi € MilnPMi(xi) + | Nt |lnλ + ∑xi €NilnPNi(xi)
        • 其中PD, PMt, PNt分別是D,Mt, Nt的機率分佈函數
        • 由於正常數據對象的數量比離羣點對象的數量大不少,所以當一個數據對象移動大離羣點集後,正常數據對象的分佈變化不大,在這種狀況下,每一個正常數據對象的總似然的貢獻保持不變,此外,若是假定離羣點服從均勻分佈,則移動到離羣點集的每個數據對象對離羣點的似然貢獻度一個固定的量,這樣,當一個數據對象移動到離羣點集時,數據總似然的改便粗略地等於該數據對象在均勻分佈下的機率(用λ加權)減去該數據對象在正常數據點的分佈下的機率(用1-λ加權).從而,離羣點由這樣一些數據對象組成.這樣,數據對象在均勻分佈下的機率比正常數據對象分佈下的機率高
        • 在某些狀況下時很難創建模型的.例如, 由於數據的統計分佈未知或訓練數據可用,在這種狀況下,能夠考慮其餘不須要創建模型的檢測方法.
  • 基於聚類的離羣點檢測方法
    • 聚類分析用於發現局部強相關的對象組,而異常檢測用來發現不與其餘對象強相關的對象,所以,聚類分析很是天然地能夠用於離羣點檢測,
    • 丟棄遠離其餘簇的小簇
      • 一種利用聚類檢測離羣點的方法傻HI丟棄遠離其餘簇的小簇,一般,該過程能夠簡化爲丟棄小於某個最小閾值的全部簇
      • 這個方法能夠和其餘任何聚類計數一期使用,可是須要最小簇大小和小簇與其餘簇之間距離的閾值,並且這種方案對簇個數的選擇高度敏感,使用這個方案很難將離羣點得分附加到對象上
      • 聚類數 k =2, 能夠直觀的看出其中包含5個對象的小簇遠離大部分對象,能夠視爲離羣點
    • 基於原型的聚類
      • 基於原型的聚類時另外一種跟系統的方法.首先聚類全部對象,而後評估對象屬於簇的程度(離羣點得分).在這種方法中,能夠用對象到它簇中心的聚類來衡量屬於簇的程度,特別的,若是刪除一個對象致使該目標的顯著改進,則可將該對象視爲離羣點,例如,在K均值算法中,刪除遠離其相關簇中心的對象可以顯著的改進該簇的偏差平方和
      • 對於基於原型的聚類,主要由兩種方法評估對象屬於簇的程度;一是度量對象到簇原型的距離,並用它做爲該對象的離羣點得分;二是考慮到簇具備不一樣的密度,能夠度量簇到原型的相對距離,相對距離是點到質心的距離於簇中全部點到質心的距離中位數之比
        • 若是選擇聚類簇數 K = 3,則對象A,B,C應分別屬於距離他們最近的簇,但相對於簇內的其餘對象,這3個點又分別遠離各自的簇,因此有理由懷疑對象A,B,C是離羣點
        • 診斷以下:
          • 進行聚類.選擇聚類算法(如K-Means算法),將樣本集聚爲K簇,並找到各簇的質心
          • 計算各對象到它的最近質心的距離
          • 計算各對象到它最近質心的相對距離
          • 與給定的閾值做對比
        • 基於聚類的離羣點的改進以下
          • 離羣點對初始聚類的影響:經過聚類檢測離羣點,離羣點會影響聚類的結果.爲了處理該問題,可使用方法:對象聚類,刪除離羣點,對象再次聚類(這個不能保證產生最優結果)
          • 還有一種更復雜的方法:取一組不能很好地擬合任何簇的特殊對象,這組對象表明潛在的離羣點.隨着聚類過程的進展,簇在變化,再也不強調屬於任何簇的特殊對象,這組對象表明潛在的離羣點,隨着聚類過程的進展,簇在變化,再也不強調屬於任何簇的對象被添加到潛在的離羣點集合;測試當前該集合中的對象,若是它如今屬於一個簇,就能夠將它從潛在的離羣點集合中移出,聚類過程結束時還留在該集合中的點被分類爲離羣點(這種方法也不能保證產生最優解,甚至不比前面的簡單算法好,在使用相對距離計算離羣點得分時,這個問題特別嚴重)
          • 對象是否被認爲是離羣點可能依賴於簇的個數(如K很大時的噪聲簇).該問題特別嚴重的答案.一種策略是對於不一樣的簇個數重複該分析.另外一種方法是找出大量的小簇,其方法以下:
            • 較小的簇傾向於更加凝聚;
            • 若是存在大量小簇時,一個對象時離羣點,則它多半時一個真正的離羣點
            • 不利的一面時一組離羣點可能造成小簇,從而逃避檢測.
相關文章
相關標籤/搜索