1. 程式人生 > >[吳恩達機器學習筆記]15非監督學習異常檢測7-8使用多元高斯分布進行異常檢測

[吳恩達機器學習筆記]15非監督學習異常檢測7-8使用多元高斯分布進行異常檢測

進行 平均值 info 錯誤 blog 占用 ron 關系 http

15.異常檢測 Anomaly detection

覺得有用的話,歡迎一起討論相互學習~Follow Me

15.7-8 多變量高斯分布/使用多元高斯分布進行異常檢測 -Multivariate Gaussian distribution/ Anomaly Detection using the Multivariate Gaussian Distribution

示例

  • 假設下圖所示的是數據中心監測計算機是否異常的CPU加載和內存占用的特征分布,:
    技術分享圖片
  • 現使用高斯分布對特征進行擬合,計算出P(x),此時綠色的點表示 異常的樣本點(CPU負載很低但是內存占用很高),但是根據兩個變量的高斯分布單獨進行擬合發現其並沒有錯誤其距離中心並不是很遠,即表示考慮單變量高斯分布,其P(x_test)並不是很小, 玫紅色圓圈表示使用單變量高斯分布得到P(x)的等高線圖
    ,所以其並不會被判定為異常數據點
    技術分享圖片

多元高斯分布

  • 在一般的高斯分布模型中,我們計算 p(x)的方法是: 通過分別計算每個特征對應的幾率然後將其累乘起來,在多元高斯分布模型中,我們將構建特征的協方差矩陣,用所有的特征一起來計算 p(x)。
  • 一般的高斯分布模型:
    技術分享圖片
  • 多元高斯分布計算步驟:
    1. 計算所有m個樣本$x^{(i)}$(每個樣本都可以表示為一個1 * n的向量)每個特征的平均值(對應特征求平均)$\mu$所以$\mu$也是一個1 * n的向量,向量中的每個單元都是所有樣本對應特征的平均值。
      技術分享圖片
    2. 計算樣本協方差矩陣,協方差矩陣計算方法請點此處
      技術分享圖片
    3. 最後我們計算多元高斯分布的 p(x):
      技術分享圖片
      其中,協方差矩陣使用Σ表示,使用|Σ|表示Σ矩陣的行列式,使用$Σ^{-1}$表示矩陣的逆。
      技術分享圖片

協方差矩陣對多元高斯模型的影響

技術分享圖片
上圖是 5 個不同的模型,從左往右依次分析:

  1. 是一個一般的高斯分布模型
  2. 通過協方差矩陣,令特征1擁有較小的偏差,同時保持特征2的偏差
  3. 通過協方差矩陣,令特征2擁有較大的偏差,同時保持特征1的偏差
  4. 通過協方差矩陣,在不改變兩個特征的原有偏差的基礎上,增加兩者之間的正相關性
  5. 通過協方差矩陣,在不改變兩個特征的原有偏差的基礎上,增加兩者之間的負相關性

多元高斯分布模型與原高斯分布模型的關系

  • 可以證明的是,原本的高斯分布模型是多元高斯分布模型的一個子集,即像上圖中的第1、2、3,3 個例子所示,如果協方差矩陣只在對角線的單位上有非零的值時,即為原本的高斯分布模型了。
  • 原高斯分布模型和多元高斯分布模型的比較

    原高斯分布模型 多元高斯分布模型
    不能捕捉特征之間的相關性但可以通過將特征進行組合的方法來解決(例如對特征進行加法或乘法) 自動捕捉特征之間的相關性
    計算代價低,能適應大規模的特征 計算代價較高 訓練集較小時也同樣適用(因為需要計算協方差矩陣的行列式和逆)
    1.必須要有 m>n,否則協方差矩陣不可逆,通常需要 m>10n;2. 特征冗余(比如兩個向量間線性相關,有加法或乘法的關系)也會導致協方差矩陣不可逆

原高斯分布模型被廣泛使用著,如果特征之間在某種程度上存在相互關聯(線性相關)的情況,可以通過構造新特征的方法來捕捉這些相關性
如果訓練集不是太大,並且沒有太多的特征,可以使用多元高斯分布模型

[吳恩達機器學習筆記]15非監督學習異常檢測7-8使用多元高斯分布進行異常檢測