吳恩達《機器學習》課程總結(15)異常檢測


15.1問題的動機

將正常的樣本繪制成圖表(假設可以),如下圖所示:

當新的測試樣本同樣繪制到圖標上,如果偏離中心越遠說明越可能不正常,使用某個可能性閾值,當低於正常可能性閾值時判斷其為異常,然后做進一步的檢查。異常檢測常用於工業生產、異常用戶等實際場景中。

以上這種方法叫密度評估:

15.2高斯分布

(1)高斯分布也稱為正態分布,其記為:

(2)高斯分布的概率密度函數:

其中均值和方差的計算公式:

均值影響水平移動;方差越大,分布越矮胖,方差越小,分布越瘦高。

(3)在求均值方差是到底用1/m還是1/(m-1)不做深究,二者差別很小(除非數據樣本特別少),機器學習上習慣用前者。

 15.3算法

(1)首先求出每個特征的均值和方差:

(2)獲取新數據之后根據模型計算密度(注意此處算的是密度,而不是概率):

(最后一項應該把1改成n)

(3)根據設定的判斷邊界,當p(x)小於判斷邊界是則判別為異常。

以下的三維圖是表示密度估計函數:

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

(1)異常檢測是一個非監督學習,故不可以根據結果變量y的值來高斯我們數據是否真的是異常。

(2)異常檢測系統開發的方法:從帶有標記(正常和異常)的數據着手,選擇部分正確數據集構建模型,然后剩余正常和異常構成交叉驗證集和測試集,交叉驗證集作為選取閾值ε

案例:10000台正常的引擎數據,20台異常引擎數據,分配如下:

6000台正常作為模型構建

2000台正常和10台異常作為交叉驗證集

2000台正常和10台異常作為測試集

具體評價方法如下:

1.根據訓練集數據,我們估計特征的平均值和方差並構建p(x)函數;

2.對交叉驗證集,嘗試用不同的ε值作為閾值,並預測數據是否異常,根據F1值或者查准率與查全率的比例來選擇ε;

3.選出ε后,針對測試集進行預測,計算異常檢測系統的F1值,或者出准率與查全率之比。

 15.5異常檢測與監督學習的對比

通常來說,正例(異常)樣本太少,甚至為0,也就是說,出現了太多沒見過的不同的異常類型,對於這些問題,通常應該使用的算法是異常檢測算法。

15.6選擇特征

(1)異常檢測是假設特征符合正態分布(不是當然也能用,但不好),故需要將非正態分布的特征轉換成正態分布,例如使用對數函數x=log(x+C),其中C是非負常數,常用1;或者x=xc,c為0-1之間的一個分數。下圖就是一個通過對數轉換得到的正態分布

(2)誤差分析:一個常見問題是一些異常的數據可能也會有較高的p(x)值,因而被認為是正常的,這種情況下可以做誤差分析,從中找到一些新特征,是異常的p(x)變小。如下圖中一個異常樣本在一個特征中p(x)值很大,然后尋找其他特征,使其p(x)變小。

通常可以通過一些相關特征的組合獲得很好的新特征,如在檢測數據中心的計算機狀況,使用CPU的負載與網絡通信的比例作為新的特征,該值異常大時意味着出現問題。

15.7多元高斯分布(選修)

(1)當特征之間具有相關性時,原來的高斯分布可能無法正確的邊界(當然通過特征組合成新特征可以一定的解決該問題),如下圖紫色的線是原來的高斯分布,藍色的線是多元高斯分布:

(2)原來的高斯分布計算過程:

多元高斯分布計算過程(計算均值、協方差、概率密度函數):

(3)協方差矩陣的影響:

(4)原高斯分布模型(特例)與多元高斯分布模型(一般)的比較:

(5)特征之間具有相關性時,解決方法有二,其一通過 多元高斯分布,其二通過特征組合形成新特征。

15.8使用多元高斯分布進行異常檢測(選修):

簡要的講就是先用數據集計算均值和協方差,然后計算p(x),利用測試數據帶入到p(x)中求得的值與閾值作比較,小於閾值則判斷為異常。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM