異常值算法分析(適用場景)

異常值算法分析(適用場景)

  • 箱型圖(數字異常值|Numberic Outlier)
    數字異常值方法是一維特征空間中最簡單的非參數異常值檢測方法,
    異常值是通過IQR(InterQuartile Range)計算得的。
    計算第一和第三四分位數(Q1、Q3),異常值是位于四分位數范圍之外的數據點x

    image

    使用四分位數乘數值k=1.5,范圍限制是典型的上下晶須的盒子圖。這種技術是使用
    KNIME Analytics Platform內置的工作流程中的Numeric Outliers節點實現的。
    箱形圖可以很直觀的分析數據的離散分布情況,上四分位數與下四分位數的距離越小說明越集中,否則說明越分散,對于上下邊緣來說是一樣的。
    然后通過中位數偏向于上四分位數還是下四分位數可以來分析數據分布的偏向。
    箱形圖還有一個優點是相對受異常值的影響比較小,能夠準確穩定地描繪出數據的離散分布情況,會比較有利于數據的清洗。

    • 問題
      1. 箱型圖的異常被定義為(-∞, Q1-1.5IRQ)∪(Q3+1.5IQR, +∞),比較依賴于經驗值
      2. 不能提供關于數據分布偏態和尾重程度的精確度量
      3. 在處理較大的數據集時,箱型圖反應的形狀更加模糊
  • 3σ(Z-score)
    Z-score是一維或低維特征空間中的參數異常檢測方法。該技術假定數據是高斯分布,
    異常值是分布尾部的數據點,因此遠離數據的平均值。
    距離的遠近取決于使用公式計算的歸一化數據點z i的設定閾值Zthr:

    image

    其中xi是一個數據點,μ是所有點xi的平均值,δ是所有點xi的標準偏差。然后經過標準化處理后,
    異常值也進行標準化處理,其絕對值大于Zthr:
    image

    Zthr值一般設置為2.5、3.0和3.5。該技術是使用KNIME工作流中的行過濾器節點實現的。

    • 問題:
      1. 需要在檢測數據滿足正態分布的前提下進行,計算異常值是以均值和標準差為基礎的
      2. 由于異常值會對均值和標準差造成影響,最終產生的異常值不會超過總數的0.7%,應用
        此方法于非正態分布的數據中判斷異常值,其有效性是有限的。
      3. 用既有數據計算μ和σ時,實際上是將正常數據和異常數據混合計算了,當排除掉異常值
        后,剩下的數據總能再計算出一對新的μ和σ,總能再次找到尾部分布的數據
      4. 只適用一維數據,不適用于多特征綜合判斷
  • 對于完全隨機數據, 3σ和箱型圖均檢測不到異常值。
  • 對于尾重數據和正態分布摻雜的數據, 3σ普遍不如箱型圖。

正態分布摻雜數據時,3σ和箱型圖基本一致的幾種數據情況

均值 方差 數量 摻雜數量 異常區間 正態數據和 異常數據和
2836 3 10w 1024 10w~50w 2.8ww 3ww
213 19 10w 1024 10w~50w 2000w 3ww
104 9 10w 1024 10w~50w 1000w 3ww
1975 2 10w 512 10w~50w 2ww 1.5ww
1798 11 10w 512 10w~50w 1.8ww 1.5ww
1346 16 10w 512 10w~50w 1.3ww 1.5ww
2636 19 10w 512 10w~50w 2.6ww 1.5ww
106 12 10w 512 10w~50w 1000w 1.5ww
1944 15 10w 512 10w~50w 2ww 1.5ww
  • 箱型圖(生成隨機的高斯分布的數據)

    • 箱型圖系數取 3
      1. 檢測到的異常值數量基本和 隨機生成的在高斯分布之外的數據數量保持一致
      2. 可以認為 生成的異常值均可以被檢測到
      3. 隨著數據量的增大, 會將一些處于正常高斯分布的數據誤判為異常值(數據量級基本可以忽略)
    • 箱型圖系數取 1.5
      1. 通常,檢測到的異常值數量會比 隨機生成的在高斯分布之外的數據量更大,
        當正常數據/異常數據≈4時,大約會檢測出 5/4 * 異常數據量 的異常數據。
      2. 生成的異常值可以認為均可以被檢測到
      3. 檢測到的異常數據中大約有 1/6~1/5 是處于高斯分布中的數據。
  • (生成隨機的高斯分布的數據)

    • 系數取3
      1. 生成的數據對原高斯分布破壞越小(即最終生成數據應該盡可能地滿足高斯分布)計算結果越精確。
      2. 在完全隨機生成整型數據的情況下, 隨機整體數據的 數據量越大(滿足高斯分布的數據占據更高的比重), 3σ 就有更多的數據無法檢測到,但 整體比例呈下降趨勢
      3. 幾乎可以認為3σ 沒有誤判數據
  1. 正常數據和尾數據 數據量對比為 8 / 2, 正常數據取值為[n , 2n), 尾重數據取值[4n, 6n) n = 2 ^ 28
  • 3σ 無法檢測到異常值
  • 箱型圖 幾乎不會數據誤判(將正常數據當作異常數據), 且大多數情況下檢測出的異常值數量和實際相差較小
    (但有0.2左右的幾率 與實際相差很大)
  1. 正常數據和尾數據 數據量對比為 8 / 2, 正常數據取值為[n , n2), 尾重數據取值[2n2, 3n2) n=2^10
  • 3σ 無法檢測到異常值
  • 箱型圖幾乎不存在誤判, 但未檢測到的異常值較多(倍數級別大于檢測到的異常值)
  1. 正常數據和尾數據 數據量對比為 9 / 1, 正常數據取值為[n , n2), 尾重數據取值[2n2, 3n2) n=2^10
  • 3σ 大約可以檢測到 3 / 8 的異常值, 不存在誤判
  • 箱型圖不存在誤判, 大約可以檢測到 5 / 8的異常值
  1. 正常數據和尾數據 數據量對比為 9 / 1, 正常數據取值為[n , 10n), 尾重數據取值[20n, 30n) n=2^10
  • 3σ 和箱型圖均不存在誤判
  • 箱型圖在大多數情況下要比3σ找出異常值的能力強2倍左右
尾重數據, 數據量 8 / 2
 8[left, right), 2[right, 3*right)

 箱型圖
 數據量 9 / 1, 異常數據區間 [2Right, 3Right)      √
 數據量 8 / 2, 異常數據區間 [2Right, 3Right)      √
 數據量 7 / 3, 異常數據區間 [2Right, 3Right]      ×
在[尾重數據最小值 絕對大于 正常數據最大值的2倍] 且占比超過 1 / 4  箱型圖統計異常
在[尾重數據最小值 絕對大于 正常數據最大值的1.5倍] 且占比超過 1 / 4  箱型圖統計異常



當尾重數據占比 >= 3/10時箱型圖統計出現問題

補KMeans (認為 距離 中心點的距離大于 距離中心點最遠距離的 2 / 3即為異常數據 )

  • 大致符合正態分布的數據
    KMeans會檢測到 比箱型圖和3σ(箱型圖和3σ基本穩定在0~1之間)更多的異常值, 且隨基礎數據量的增大而增大
  • 尾重數據 (取正常數據和尾重數據的數量比為 8 / 2)
    KMens基本不存在誤判的數據, 但會有 大約 1 / 10的異常值(去重)不能被檢測到
  • 正態分布數據摻雜
    測試中摻雜的數據取值范圍在 [0, (平均數 + 1) * (總數據量 * 0.2))
    此時KMeans檢測到異常值的能力依然很差, 但相比檢測符合正態分布的數據 較強
    (也存在一定可能性: 摻雜后的數據滿足了另一個正態分布, 或者摻雜的數據中存在一部分是處于正態分布的區間)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。