機器學習——異常值檢測

機器學習——異常檢測


在生產生活中,因爲設備的偏差或者人爲操做失當,產品不免會出現錯誤。而後檢查錯誤對人來講又是一個十分瑣碎的事情。利用機器學習進行異常值檢測可讓人類擺脫檢錯的煩惱。算法

檢測算法

  • 1.選定容易出錯的\(n\)個特徵\(\{x_1^{(i)},x_2^{(i)},\ldots,x_n^{(i)}\}\)做爲變量。
  • 2.計算m個樣本的平均值和方差。
    \[{\mu_j} = {1 \over m}\sum\limits_{i = 1}^m {x_j^{(i)}}\]

\[ {\sigma ^2} = {1 \over m}\sum\limits_{i = 1}^m {(x_j^{(i)}} - {\mu _j}{)^2} \]機器學習

  • 3.給定監測點\(x\).計算\(p(x)\)
    \[p(x) = \prod \limits_{j = 1}^n {p({x_j};{\mu_j},\sigma_j^2)}\]函數

  • 4.若是\(p(x)< \epsilon\),則爲異常值;反之,不是。學習

開發和評價一個異常檢測系統

異常檢測算法是一個非監督學習算法,意味着咱們沒法經過結果變量判斷咱們的數據是否異常。因此咱們須要另外一種方法檢測算法是否有效。當咱們開發一個系統時,咱們從有標籤(知道是否異常)的數據入手,從中找出一部分正常數據做爲訓練集,剩餘的正常數據和異常數據做爲交叉檢驗集和測試集。測試

具體評價方法以下:spa

  • 根據測試集數據,估計出特徵的平均值和方差,構建\(p(x)\)函數
  • 對於交叉檢驗集,嘗試使用不一樣的\(\epsilon\)最爲閾值,並預測數據是否異常,根據F1值或者查準率與查全率的比例來選擇\(\epsilon\)
  • 選出\(\epsilon\)後,針對測試集進行預測,計算異常檢驗系統的F1值或者查準率與查全率之比

異常檢測與監督學習對比

異常檢測 監督學習
大量的正常值(y=0)和少許的異常值(y=1) 大量的正向類(y=0)和少許的負向類(y=1)
異常數據太少,只能根據少許數據進行訓練 有足夠多的正向和負向數據以供訓練
舉例:1.欺詐行爲檢測;2.生產廢品檢測;3.檢測機器運行狀態 舉例:1.郵箱過濾器;2.天氣預報;3.腫瘤分類

分佈的處理

  • 對於高斯分佈的數據,直接運用以上算法就好。
  • 可是對於非高斯分佈的數據,雖然也但是使用上面的算法,可是效果不是很好,因此咱們儘可能將非高斯分佈轉化成(近似)高斯分佈,而後再進行處理。
  • 數據總體偏小,能夠求\(ln(x)\)或者\(x^a,0<a<1\)
  • 數據總體偏大,能夠求\(e^x\)或者\(x^a,a>1\)

偏差分析

在偏差分析中,若是咱們能夠發現個人選定的變量是否合適,進而進行相應的改正。如左圖所示,異常點\(x\)對應的機率很高,顯然這種分佈方式不能很好地識別出異常值。因此咱們嘗試增長變量或者改變變量的類型來識別異常值。如右圖所示,經過增長一個變量,咱們可以更好地識別異常點。因此,偏差分析對於一個問題來講仍是很重要的。blog

相關文章
相關標籤/搜索