1. 程式人生 > >吳恩達《機器學習》課程總結(15)異常檢測

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

是否 5.6 問題 com 結果 平移 分享 出現問題 計算過程

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)中求得的值與閾值作比較,小於閾值則判斷為異常。

技術分享圖片

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