張全蛋告訴你什麼是異常檢測(Anomaly Detection)
什麼是異常檢測
異常檢測就是找出不合格的產品。
有一個富土康質檢員,叫張全蛋。假設他每天的任務就是檢測剛出廠的iPhone 是否合格
假設正常的iPhone都是寬7cm,長14.3 cm左右,都集中在畫圈的位置
但是有兩個iPhone,一個寬度特別小,一個長度特別大
張全蛋發現了異常,於是秉著嚴肅認真的精神,張全蛋報告了領導。這個過程就是異常檢測
如何進行異常檢測
張全蛋有一個的公式,可以告訴他剛出廠的iPhone是正常的的概率是多少。
我們來仔細看一下這個公式
這個公式需要用到三個數,x , ,
x是要檢測的iPhone的特徵,可能有n個特徵, 。
另外兩個值, 和 需要通過歷史數據來計算,也就是用訓練數據來計算。
是特徵的平均值
是特徵的方差
知道了 和 ,當一個新的iPhone出廠時,張全蛋就可以套用這個公式計算它是正常手機的概率了。
如果概率小於某一個臨界值,他就可以向領導報告異常。
這個公式適用於多個特徵的情況,比如我們知道重量,直徑,長,寬,高,五個特徵。那麼最終的概率就是五個概率相乘的結果。
這個公式有一個前提,假設每一個特徵都基本複合高斯分布,也就是正態分布,因為正態分布長的像鍾,所以也叫鍾性分布
異常檢測其他方法
如果有多個特徵,我們還可以用多元正態分布,進行異常檢測。
和剛才的公式大同小異,只不過把方差換成了協方差。
這個公式的缺點是計算量比較大,尤其是特徵多的時候。
此外,異常檢測還有一些技巧,比如當特徵太多的時候可以進行,PCA, 主成分分析。對數據降維,比如三維變二維。
如果特徵分布不像是高斯分布,不是鐘形的,我們可以對數據進行一些變換,比如開根號,取對數,平移,使特徵的分布變得更像鐘形。
異常檢測用途
欺詐檢測,檢測你的信用卡是否被別人盜刷了。卡的使用地點,使用頻率,和使用時間都可以作為輸入特徵,尋找異常。
數據中心的監測。輸入特徵包括,內存使用,CPU負載,硬碟佔用率。通過異常檢測找出出問題的機器。
異常檢測有這麼多其他應用,即使有一天富土康倒閉了,張全蛋也不怕找不到工作了。
bilibili 視頻
推薦閱讀:
※AS自帶的 檢測工具Lint
※異常檢測之SOS演算法
※android lint中的probable bugs
※異常日誌監控之日誌採集