机器学习笔记十二之异常检测
本節目錄
- 1 問題的動機
- 2 高斯分布
- 3 開發和評價一個異常檢測系統
- 4 異常監測與監督學習對比
- 5 選擇特征
- 6 多元高斯分布
- 7 多元高斯分布進行異常檢測
1 問題的動機
我們先看下什么是異常檢測?假想你是一個飛機引擎制造商,當你生產的飛機引擎從生產線上流出時,你需要進行QA(質量控制測試),而作為這個測試的一部分,你測量了飛機引擎的一些特征變量,比如引
擎運轉時產生的熱量,或者引擎的振動等等。
這樣一來,你就有了一個數據集,從𝑥(1)到𝑥(𝑚),如果你生產了𝑚個引擎的話,你將這
些數據繪制成圖表,看起來就是這個樣子:
這里的每個點、每個叉,都是你的無標簽數據。這樣,異常檢測問題可以定義如下:我們假設后來有一天,你有一個新的飛機引擎從生產線上流出,而你的新飛機引擎有特征變量𝑥𝑡𝑒𝑠𝑡。所謂的異常檢測問題就是:我們希望知道這個新的飛機引擎是否有某種異常,或者說,我們希望判斷這個引擎是否需要進一步測試。因為,如果它看起來像一個正常的引擎,那么我們可以直接將它運送到客戶那里,而不需要進一步的測試。
給定數據集 𝑥(1), 𝑥(2), . . , 𝑥(𝑚),我們假使數據集是正常的,我們希望知道新的數據 𝑥𝑡𝑒𝑠𝑡
是不是異常的,即這個測試數據不屬于該組數據的幾率如何。我們所構建的模型應該能根據
該測試數據的位置告訴我們其屬于一組數據的可能性 𝑝(𝑥)。
上圖中,在藍色圈內的數據屬于該組數據的可能性較高,而越是偏遠的數據,其屬于該
組數據的可能性就越低。
2 高斯分布
我們選擇一個𝜀,將𝑝(𝑥) = 𝜀作為我們的判定邊界,當𝑝(𝑥) > 𝜀時預測數據為正常數據,
否則為異常。
在這段視頻中,我們介紹了如何擬合𝑝(𝑥),也就是 𝑥的概率值,以開發出一種異常檢測
算法。同時,在這節課中,我們也給出了通過給出的數據集擬合參數,進行參數估計,得到
參數 𝜇 和 𝜎,然后檢測新的樣本,確定新樣本是否是異常。
3 開發和評價一個異常檢測系統
異常檢測算法是一個非監督學習算法,意味著我們無法根據結果變量 𝑦 的值來告訴我們數據是否真的是異常的。我們需要另一種方法來幫助檢驗算法是否有效。當我們開發一個異常檢測系統時,我們從帶標記(異常或正常)的數據著手,我們從其中選擇一部分正常數據用于構建訓練集,然后用剩下的正常數據和異常數據混合的數據構成交叉檢驗集和測試集。
4 異常監測與監督學習對比
5 選擇特征
對于異常檢測算法,我們使用的特征是至關重要的,下面談談如何選擇特征:
異常檢測假設特征符合高斯分布,如果數據的分布不是高斯分布,異常檢測算法也能夠工作,但是最好還是將數據轉換成高斯分布,例如使用對數函數: 𝑥 = 𝑙𝑜𝑔(𝑥 + 𝑐),其中 𝑐為非負常數; 或者 𝑥 = 𝑥𝑐, 𝑐為 0-1 之間的一個分數,等方法。
誤差分析:
一個常見的問題是一些異常的數據可能也會有較高的𝑝(𝑥)值,因而被算法認為是正常的。
這種情況下誤差分析能夠幫助我們,我們可以分析那些被算法錯誤預測為正常的數據,觀察
能否找出一些問題。我們可能能從問題中發現我們需要增加一些新的特征,增加這些新特征
后獲得的新算法能夠幫助我們更好地進行異常檢測。
我們通常可以通過將一些相關的特征進行組合,來獲得一些新的更好的特征(異常數據
的該特征值異常地大或小),例如,在檢測數據中心的計算機狀況的例子中,我們可以用 CPU
負載與網絡通信量的比例作為一個新的特征,如果該值異常地大,便有可能意味著該服務器
是陷入了一些問題中。
6 多元高斯分布
假使我們有兩個相關的特征,而且這兩個特征的值域范圍比較寬,這種情況下,一般的高斯分布模型可能不能很好地識別異常數據。其原因在于,一般的高斯分布模型嘗試的是去
同時抓住兩個特征的偏差,因此創造出一個比較大的判定邊界。
下圖中是兩個相關特征, 洋紅色的線( 根據 ε 的不同其范圍可大可小) 是一般的高斯分
布模型獲得的判定邊界,很明顯綠色的 X 所代表的數據點很可能是異常值,但是其𝑝(𝑥)值卻
仍然在正常范圍內。多元高斯分布將創建像圖中藍色曲線所示的判定邊界。
在一般的高斯分布模型中,我們計算 𝑝(𝑥) 的方法是: 通過分別計算每個特征對應的
幾率然后將其累乘起來,在多元高斯分布模型中,我們將構建特征的協方差矩陣,用所有的
特征一起來計算 𝑝(𝑥)。
我們首先計算所有特征的平均值,然后再計算協方差矩陣:
可以證明的是,原本的高斯分布模型是多元高斯分布模型的一個子集,即像上圖中的第
1、 2、 3, 3 個例子所示,如果協方差矩陣只在對角線的單位上有非零的值時,即為原本的高
斯分布模型了。
原高斯分布模型被廣泛使用著,如果特征之間在某種程度上存在相互關聯的情況,我們
可以通過構造新新特征的方法來捕捉這些相關性。
如果訓練集不是太大,并且沒有太多的特征,我們可以使用多元高斯分布模型。
7 多元高斯分布進行異常檢測
改變多元高斯分布的
就可以得到一個范圍分布不同的算法。
現在有一組樣本𝑥(1), 𝑥(2), . . . , 𝑥(𝑚)是一個𝑛維向量,我想我的樣本來自一個多元高斯分布。
我如何嘗試估計我的參數 𝜇 和 𝛴 以及標準公式?
估計他們是你設置 𝜇 是你的訓練樣本的平均值。
這其實只是當我們使用 PCA 算法時候,有 𝛴 時寫出來。所以你只需插入上述兩個公式,
這會給你你估計的參數 𝜇 和你估計的參數 𝛴。所以,這里給出的數據集是你如何估計 𝜇 和𝛴。讓我們以這種方法而只需將其插入到異常檢測算法。那么,我們如何把所有這一切共同開發一個異常檢測算法?
如圖,該分布在中央最多,越到外面的圈的范圍越小。并在該點是出路這里的概率非常低。
原始模型與多元高斯模型的關系如圖:
其中:協方差矩陣𝛴為:
總結
以上是生活随笔為你收集整理的机器学习笔记十二之异常检测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: apt-get 与 yum的区别 (转)
- 下一篇: Nature | 基于66种癌症类型训练