將正常的樣本繪製成圖表(假設可以),如下圖所示:
當新的測試樣本同樣繪製到圖示上,如果偏離中心越遠說明越可能不正常,使用某個可能性閾值,當低於正常可能性閾值時判斷其為異常,然後做進一步的檢查。異常檢測常用於工業生產、異常使用者等實際場景中。
以上這種方法叫密度評估:
(1)高斯分布也稱為正態分佈,其記為:
(2)高斯分布的概率密度函式:
其中均值和方差的計算公式:
均值影響水平移動;方差越大,分布越矮胖,方差越小,分布越瘦高。
(3)在求均值方差是到底用1/m還是1/(m-1)不做深究,二者差別很小(除非資料樣本特別少),機器學習上習慣用前者。
(1)首先求出每個特徵的均值和方差:
(2)獲取新資料之後根據模型計算密度(注意此處算的是密度,而不是概率):
(最後一項應該把1改成n)
(3)根據設定的判斷邊界,當p(x)小於判斷邊界是則判別為異常。
以下的三維圖是表示密度估計函式:
(1)異常檢測是乙個非監督學習,故不可以根據結果變數y的值來高斯我們資料是否真的是異常。
(2)異常檢測系統開發的方法:從帶有標記(正常和異常)的資料著手,選擇部分正確資料集構建模型,然後剩餘正常和異常構成交叉驗證集和測試集,交叉驗證集作為選取閾值ε
案例:10000臺正常的引擎資料,20臺異常引擎資料,分配如下:
6000臺正常作為模型構建
2000臺正常和10臺異常作為交叉驗證集
2000臺正常和10臺異常作為測試集
具體評價方法如下:
1.根據訓練集資料,我們估計特徵的平均值和方差並構建p(x)函式;
2.對交叉驗證集,嘗試用不同的ε值作為閾值,並**資料是否異常,根據f1值或者查準率與查全率的比例來選擇ε;
3.選出ε後,針對測試集進行**,計算異常檢測系統的f1值,或者計算出出查準率查全率之比。
通常來說,正例(異常)樣本太少,甚至為0,也就是說,出現了太多沒見過的不同的異常型別,對於這些問題,通常應該使用的演算法是異常檢測演算法。
(1)異常檢測是假設特徵符合正態分佈(不是當然也能用,但不好),故需要將非正態分佈的特徵轉換成正態分佈,例如使用對數函式x=log(x+c),其中c是非負常數,常用1;或者x=xc,c為0-1之間的乙個分數。下圖就是乙個通過對數轉換得到的正態分佈
(2)誤差分析:乙個常見問題是一些異常的資料可能也會有較高的p(x)值,因而被認為是正常的,這種情況下可以做誤差分析,從中找到一些新特徵,是異常的p(x)變小。如下圖中乙個異常樣本在乙個特徵中p(x)值很大,然後尋找其他特徵,使其p(x)變小。
通常可以通過一些相關特徵的組合獲得很好的新特徵,如在檢測資料中心的計算機狀況,使用cpu的負載與網路通訊的比例作為新的特徵,該值異常大時意味著出現問題。
(1)當特徵之間具有相關性時,原來的高斯分布可能無法正確的邊界(當然通過特徵組合成新特徵可以一定的解決該問題),如下圖紫色的線是原來的高斯分布,藍色的線是多元高斯分布:
(2)原來的高斯分布計算過程:
多元高斯分布計算過程(計算均值、協方差、概率密度函式):
(3)協方差矩陣的影響:
(4)原高斯分布模型(特例)與多元高斯分布模型(一般)的比較:
(5)特徵之間具有相關性時,解決方法有二,其一通過 多元高斯分布,其二通過特徵組合形成新特徵。
簡要的講就是先用資料集計算均值和協方差,然後計算p(x),利用測試資料帶入到p(x)中求得的值與閾值作比較,小於閾值則判斷為異常。
《吳恩達機器學習》15 異常檢測
二 異常檢測方法應用 三 多變數的高斯分布 總結異常檢測首先不是檢測機器學習演算法中的異常,也不是乙個演算法,它指的是一種應用場景 剛開始時我也陷入這兩種猜測。比如在工廠內生產一批零件,我們用高斯分布的方法來 新生產的零件的異常狀況。這就是本章學習的內容 異常檢測 正態分佈 normal distr...
吳恩達《機器學習》課程總結 19 總結
線性回歸 下面第三行x0 i 其實是1,可以去掉 邏輯回歸 神經網路 寫出前向傳播即可,反向框架會自動計算 pca訓練誤差減去人類最高水平為偏差 欠擬合 交叉驗證集誤差減訓練誤差為方差 過擬合 正則化解決方差問題,不對 0正則化 全過程觀測偏差與方差,所以更全面。找到哪種原因造成誤差最大,最該花時間...
吳恩達《機器學習》課程總結(19)總結
線性回歸 下面第三行x0 i 其實是1,可以去掉 邏輯回歸 神經網路 寫出前向傳播即可,反向框架會自動計算 pca訓練誤差減去人類最高水平為偏差 欠擬合 交叉驗證集誤差減訓練誤差為方差 過擬合 正則化解決方差問題,不對 0正則化 全過程觀測偏差與方差,所以更全面。找到哪種原因造成誤差最大,最該花時間...