機(jī)器學(xué)習(xí)13 異常檢測

15 異常檢測

內(nèi)容:
15.1 異常檢測
15.2 高斯分布
15.3 異常檢測算法
15.4 開發(fā)和評(píng)價(jià)一個(gè)異常檢測系統(tǒng)
15.5 異常檢測與監(jiān)督學(xué)習(xí)
15.6 選擇特征
15.7 多元高斯分布與異常檢測

15.1 異常檢測

  1. 異常檢測有什么用

    假想你是一個(gè)飛機(jī)引擎制造商,當(dāng)你生產(chǎn)的飛機(jī)引擎從生產(chǎn)線上流出時(shí),你需要進(jìn)行QA(質(zhì)量控制測試),而作為這個(gè)測試的一部分,你測量了飛機(jī)引擎的一些特征變量,比如引擎運(yùn)轉(zhuǎn)時(shí)產(chǎn)生的熱量,或者引擎的振動(dòng)等等。

這里的每個(gè)點(diǎn)、每個(gè)叉,都是你的無標(biāo)簽數(shù)據(jù)。
異常檢測問題可以定義如下:我們假設(shè)后來有一天,你有一個(gè)新的飛機(jī)引擎從生產(chǎn)線上流出,而你的新飛機(jī)引擎有特征變量??????????。所謂的異常檢測問題就是:我們希望知道這個(gè)新的飛機(jī)引擎是否有某種異常

  1. 異常檢測原理

    假使已知數(shù)據(jù)集是正常的,我們希望知道新的數(shù)據(jù) ??????????是不是異常的。那么我們所構(gòu)建的模型應(yīng)該能根據(jù)該新的測試數(shù)據(jù)的位置告訴我們其屬于一組數(shù)據(jù)的可能性 ??(??)。

上圖中,在藍(lán)色圈內(nèi)的數(shù)據(jù)屬于該組數(shù)據(jù)的可能性較高,而越是偏遠(yuǎn)的數(shù)據(jù),其屬于該組數(shù)據(jù)的可能性就越低。

這種方法稱為密度估計(jì),表達(dá)如下:
  1. 異常檢測應(yīng)用
  • 識(shí)別欺騙。例如在線采集而來的有關(guān)用戶的數(shù)據(jù),一個(gè)特征向量中可能會(huì)包含如:用戶多久登錄一次,訪問過的頁面,在論壇發(fā)布的帖子數(shù)量,甚至是打字速度等。嘗試根據(jù)這些特征構(gòu)建一個(gè)模型,可以用這個(gè)模型來識(shí)別那些不符合該模式的用戶。
  • 檢測數(shù)據(jù)中心。特征可能包含:內(nèi)存使用情況,被訪問的磁盤數(shù)量,CPU 的負(fù)載,網(wǎng)絡(luò)的通信量等。根據(jù)這些特征可以構(gòu)建一個(gè)模型,用來判斷某些計(jì)算機(jī)是不是有可能出錯(cuò)了。

15.2 高斯分布(正態(tài)分布)

高斯分布

概率密度函數(shù)

??

??2

高斯分布樣例

可以觀察兩個(gè)參數(shù)與圖形之間的關(guān)系,u決定軸,??決定高矮

15.3 異常檢測算法

對(duì)于給定的數(shù)據(jù)集 ??(1),??(2),...,??(??),我們要針對(duì)每一個(gè)特征計(jì)算 ?? 和 ??2 的估計(jì)值。

一旦我們獲得了平均值和方差的估計(jì)值,給定新的一個(gè)訓(xùn)練實(shí)例,根據(jù)模型計(jì)算 ??(??):

當(dāng)??(??) < ε時(shí),為異常。

下圖是一個(gè)由兩個(gè)特征的訓(xùn)練集,以及特征的分布情況:

下面的三維圖表表示的是密度估計(jì)函數(shù),??軸為根據(jù)兩個(gè)特征的值所估計(jì)??(??)值:

我們選擇一個(gè)ε,將??(??) = ε作為我們的判定邊界,當(dāng)??(??) > ε時(shí)預(yù)測數(shù)據(jù)為正常數(shù)據(jù),否則為異常。

15.4 開發(fā)和評(píng)價(jià)一個(gè)異常檢測系統(tǒng)

異常檢測算法是一個(gè)非監(jiān)督學(xué)習(xí)算法,意味著我們無法根據(jù)結(jié)果變量 ?? 的值來告訴我們數(shù)據(jù)是否真的是異常的。我們需要另一種方法來幫助檢驗(yàn)算法是否有效。當(dāng)我們開發(fā)一個(gè)異常檢測系統(tǒng)時(shí),我們從帶標(biāo)記(異?;蛘#┑臄?shù)據(jù)著手,我們從其中選擇一部分正常數(shù)據(jù)用于構(gòu)建訓(xùn)練集,然后用剩下的正常數(shù)據(jù)和異常數(shù)據(jù)混合的數(shù)據(jù)構(gòu)成交叉檢驗(yàn)集和測試集。
例如:我們有 10000 臺(tái)正常引擎的數(shù)據(jù),有 20 臺(tái)異常引擎的數(shù)據(jù)。 我們這樣分配數(shù)據(jù):
6000 臺(tái)正常引擎的數(shù)據(jù)作為訓(xùn)練集
2000 臺(tái)正常引擎和 10 臺(tái)異常引擎的數(shù)據(jù)作為交叉檢驗(yàn)集
2000 臺(tái)正常引擎和 10 臺(tái)異常引擎的數(shù)據(jù)作為測試集
具體的評(píng)價(jià)方法如下:

  1. 根據(jù)測試集數(shù)據(jù),我們估計(jì)特征的平均值和方差并構(gòu)建??(??)函數(shù)
  2. 對(duì)交叉檢驗(yàn)集,我們嘗試使用不同的 ε 值作為閥值,并預(yù)測數(shù)據(jù)是否異常,根據(jù) F1 值或者查準(zhǔn)率與查全率的比例來選擇 ε
  3. 選出 ε 后,針對(duì)測試集進(jìn)行預(yù)測,計(jì)算異常檢驗(yàn)系統(tǒng)的??1值,或者查準(zhǔn)率與查全率之比。

15.5 異常檢測與監(jiān)督學(xué)習(xí)對(duì)比

在哪種情況下選擇異常檢測,哪種情況下選擇監(jiān)督學(xué)習(xí)?

首先解釋:正向類(異常數(shù)據(jù) ?? = 1), 負(fù)向類(正常數(shù)據(jù)?? = 0)

15.6 選擇特征

  1. 如何選擇特征?

    異常檢測假設(shè)特征符合高斯分布,如果數(shù)據(jù)的分布不是高斯分布,異常檢測算法也能夠工作,但是最好還是將數(shù)據(jù)轉(zhuǎn)換成高斯分布,例如使用對(duì)數(shù)函數(shù):?? = ??????(?? + ??),其中 ?? 為非負(fù)常數(shù); 或者 ?? = ????(冪),??為 0-1 之間的一個(gè)分?jǐn)?shù),等方法。
  2. 誤差分析:
    一個(gè)常見的問題是一些異常的數(shù)據(jù)可能也會(huì)有較高的??(??)值,因而被算法認(rèn)為是正常的。這種情況下誤差分析能夠幫助我們,我們可以分析那些被算法錯(cuò)誤預(yù)測為正常的數(shù)據(jù),觀察能否找出一些問題。我們可能能從問題中發(fā)現(xiàn)我們需要增加一些新的特征,增加這些新特征后獲得的新算法能夠幫助我們更好地進(jìn)行異常檢測。

  3. 特征選擇
    我們通??梢酝ㄟ^將一些相關(guān)的特征進(jìn)行組合,來獲得一些新的更好的特征(異常數(shù)據(jù)的該特征值異常地大或?。?,例如,在檢測數(shù)據(jù)中心的計(jì)算機(jī)狀況的例子中,我們可以用 CPU負(fù)載與網(wǎng)絡(luò)通信量的比例作為一個(gè)新的特征,如果該值異常地大,便有可能意味著該服務(wù)器是陷入了一些問題中。

15.7 多元高斯分布

  1. 不成功的例子
    假使我們有兩個(gè)相關(guān)的特征,而且這兩個(gè)特征的值域范圍比較寬,這種情況下,一般的高斯分布模型可能不能很好地識(shí)別異常數(shù)據(jù)。其原因在于,一般的高斯分布模型嘗試的是去同時(shí)抓住兩個(gè)特征的偏差,因此創(chuàng)造出一個(gè)比較大的判定邊界。
    下圖中是兩個(gè)相關(guān)特征,洋紅色的線(根據(jù) ε 的不同其范圍可大可小)是一般的高斯分布模型獲得的判定邊界,很明顯綠色的 X 所代表的數(shù)據(jù)點(diǎn)很可能是異常值,但是其??(??)值卻仍然在正常范圍內(nèi)。多元高斯分布將創(chuàng)建像圖中藍(lán)色曲線所示的判定邊界。


  2. 多元高斯分布
    在一般的高斯分布模型中,我們計(jì)算 ??(??) 的方法是: 通過分別計(jì)算每個(gè)特征對(duì)應(yīng)的幾率然后將其累乘起來,在多元高斯分布模型中,我們將構(gòu)建特征的協(xié)方差矩陣,用所有的特征一起來計(jì)算 ??(??)。

    首先計(jì)算所有特征的平均值,然后再計(jì)算協(xié)方差矩陣:

上圖是 5 個(gè)不同的模型,從左往右依次分析:
1是一個(gè)一般的高斯分布模型
2通過協(xié)方差矩陣,令特征 1 擁有較小的偏差,同時(shí)保持特征 2 的偏差
3通過協(xié)方差矩陣,令特征 2 擁有較大的偏差,同時(shí)保持特征 1 的偏差
4通過協(xié)方差矩陣,在不改變兩個(gè)特征的原有偏差的基礎(chǔ)上,增加兩者之間的正相關(guān)性
5通過協(xié)方差矩陣,在不改變兩個(gè)特征的原有偏差的基礎(chǔ)上,增加兩者之間的負(fù)相關(guān)性

  1. 原高斯分布模型和多元高斯分布模型的比較

    原本的高斯分布模型是多元高斯分布模型的一個(gè)子集。

其中m是樣本數(shù),n是特征數(shù)

  1. 使用多元高斯分布進(jìn)行異常檢測

    設(shè)置 ?? 是訓(xùn)練樣本的平均值:

    設(shè)置??:

    給定一個(gè)新數(shù)據(jù),計(jì)算

    如果??(??) < ε那么這就是異常數(shù)據(jù)
  2. 原始模型和多元高斯分布比較



    原始模型在n(特征數(shù))很大的時(shí)候都適用;多元高斯分布在n很大的時(shí)候不適用,因?yàn)檫€有一個(gè)很麻煩的矩陣
    原始模型在m(訓(xùn)練集大小)比較小的時(shí)候適用;多元高斯模型在m>>n的時(shí)候適用,因?yàn)檫@時(shí)矩陣可逆

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 該系列文章為,觀看“吳恩達(dá)機(jī)器學(xué)習(xí)”系列視頻的學(xué)習(xí)筆記。雖然每個(gè)視頻都很簡單,但不得不說每一句都非常的簡潔扼要,淺...
    tomas家的小撥浪鼓閱讀 1,286評(píng)論 1 7
  • 15.1 問題的動(dòng)機(jī) 接下來,我將介紹異常檢測(Anomaly detection)問題。。這是機(jī)器學(xué)習(xí)算法的一個(gè)...
    Colleen_oh閱讀 475評(píng)論 0 0
  • 1.問題的動(dòng)機(jī) 異常檢測(Anomaly detection)問題是機(jī)器學(xué)習(xí)算法的一個(gè)常見應(yīng)用。這種算法的一個(gè)有趣...
    帶刺的小花_ea97閱讀 15,483評(píng)論 4 6
  • 問題動(dòng)機(jī) 再給定訓(xùn)練集的情況下,如何檢測某一個(gè)輸入x是否異常? 首先要根據(jù)訓(xùn)練集數(shù)據(jù)建立一個(gè)模型,當(dāng)給定數(shù)據(jù)的值的...
    魏清宇閱讀 2,535評(píng)論 0 7
  • 你永遠(yuǎn)奔馳在輪回悲劇,一路揚(yáng)著朝圣的長旗。 —— 一個(gè)曾經(jīng)年輕靈活的充滿無限可能的生命最后終于活成了社會(huì)底層百年...
    此情可瀻閱讀 753評(píng)論 0 0

友情鏈接更多精彩內(nèi)容