本篇介紹了異常點檢測相關的知識
更多內容參考 機器學習&深度學習
我感覺這篇整理的很好很用心,可以詳細參考:
https://blog.csdn.net/Snail_Moved_Slowly/article/details/78826088
什么是異常點檢測?比如針對飛機的引擎做測試,x1代表溫度、x2代表引擎的震動等等,希望判斷新生產的引擎是否有問題。如果這個新的引擎在點的中心可能是正常的,如果離大部分的樣本點都很遠,那就可能是異常點。
另外可以假設有一個模型可以預測概率,如果P<ξ,就是異常點;如果P>ξ就是正常點。再比如消費者的信用行為、數據中心的監控等等。
高斯分布也叫做正態分布,描述了數據分布的情況
使用高斯分布進行異常點檢測的算法流程:
1 選擇可能產生異常值影響的特征
2 計算每個特征的平均值和方差
3 基於方差和均值計算p(x)
得到結果后就可以進行異常點的判斷了,比如ξ選擇了0.02,那么就可以對各個樣本點進行對比,小於它的,就認為是異常點。
那么如何開發一個異常點檢測的應用呢。如果能有部分的樣本帶有標注y=1或者y=0,就可以基於這些數據做為模型的評價了。如果我們有10000個正常點,20個異常點。那么可以分配6000個正常點作為訓練集,10個異常點+2000個正常點作為驗證集,剩下的作為測試集。然后使用P R F1做為模型的評估。
異常點檢測和監督學習還是不同的:首先就是異常點檢測異常樣本極少,而監督學習要求正常樣本點和異常點都很多才行。在數據分布方面,高斯分布需要各個維度都保持在正態分布;模型訓練方面,異常點只是在驗證集與測試集上起作用。
在使用高斯分布之前應該把數據構造成正態分布的樣子,否則就是用一些Log或者開方等方法,使得圖形貼近高斯分布。如果選擇了一個特征,結果異常點在樣本點中間,那么最好能開發一些新的特征,使得這個異常點脫離正常點。
多元高斯分布是高斯分布的一種特殊情況,他們也有不同的使用場景:
1 高斯分布需要手動設計特征;多變量多元高斯分布則可以自己捕獲特征
2 高斯分布的計算代價比較小;
3 高斯分布在m樣本量比較少的時候也無所謂;多元高斯分布由於要構造一個矩陣,所以需要保證m有足夠的量
多元高斯分布的出現主要是解決多個特征擬合后,雖然在自己的維度都不屬於異常點,但是通過多元的作用,就可以把異常點排除。