Chapter 9 異常檢測與推薦系統 (reading notes)

0. 版權聲明

  • Machine learning 系列筆記來源於Andrew Ng 教授在 Coursera 網站上所授課程《Machine learning》1
  • 該系列筆記不以盈利爲目的,僅用於個人學習、課後複習及交流討論;
  • 如有侵權,請與本人聯繫([email protected]),經覈實後即刻刪除;
  • 轉載請註明出處;

1. 異常檢測原理

1.1 Symbol

  • p(x)p(x):隨機變量 x 的概率分佈;
    p(x;μ,σ2)p(x;\mu,\sigma^2):服從正態分佈的隨機變量 x 的概率分佈,其均值爲μ\mu,方差爲 σ2\sigma^2
    μi\mu_i:隨機變量 xx 第 i 個特徵的均值;

1.2 Gaussian(Normal) distribution

  • 高斯分佈:即正態分佈,服從該分佈的隨機變量 xx 均值爲 μ\mu,方差爲 σ2\sigma^2,記爲 xN(μ,σ2)x\sim N(\mu,\sigma^2)
    • N 表示 Normal distribution;
    • 標準差 σ\sigma 決定高斯分佈概率密度函數的寬度;

1.3 異常檢測算法

  • 密度估計問題:即求解 p(x)p(x)
    • 設隨機變量 xx 有多個特徵 x1,x2,,xnx_1,x_2,\dots,x_n
    • p(x)=p(x1;μ1,σ12)p(x2;μ2,σ22)p(xn;μn,σn2)=j=1np(xj;μj,σj2)p(x)=p(x_1;\mu_1,\sigma^2_1)p(x_2;\mu_2,\sigma^2_2)\dots p(x_n;\mu_n,\sigma^2_n)=\prod_{j=1}^np(x_j;\mu_j,\sigma^2_j)

上式的前提爲特徵 x1,x2,,xnx_1,x_2,\dots,x_n 均獨立,即使不滿足該前提時,使用該式計算所得結果依然很好(語出 Andrew Ng 《Machine learning》 Week 9 視頻:Algorithm 2:19 秒);

  • 異常檢測算法的步驟:
    • Step 1:選取若干特徵 x1,x2,,xnx_1,x_2,\dots,x_n
    • Step 2:擬合期望與方差;
      • μi=1mi=1mxj(i)\mu_i=\frac{1}{m}\sum_{i=1}^mx^{(i)}_j,向量化可得 μ=[μ1μ2μn]=1mi=1mx(i)\mu=\begin{bmatrix}\mu_1 \\\mu_2 \\\vdots \\\mu_n \end{bmatrix}=\frac{1}{m}\sum_{i=1}^mx^{(i)}
      • σj2=1mi=1m(xj(i)μj)2\sigma^2_j=\frac{1}{m}\sum_{i=1}^m(x^{(i)}_j-\mu_j)^2,向量化可得 σ2=1mi=1m(x(i)μ)2\sigma^2=\frac{1}{m}\sum_{i=1}^m(x^{(i)}-\mu)^2
    • Step 3:對給定的新樣本 xx ,計算 p(x)p(x)
      • p(x)=j=1np(xj;μj,σj2)=j=1n12πσjexp((xjμj)22σj2)p(x)=\prod_{j=1}^np(x_j;\mu_j,\sigma^2_j)=\prod_{j=1}^n\frac{1}{\sqrt{2\pi}\sigma_j}exp(-\frac{(x_j-\mu_j)^2}{2\sigma^2_j})
      • 取閾值爲 ϵ\epsilon,若 p(x)<ϵp(x)<\epsilon,則新樣本 xx 爲異常點;

2. 構建異常檢測系統

2.1 如何評價一個異常檢測系統

  • 異常檢測系統的評價算法:
    • Step 1:將帶標籤的樣本劃分爲訓練集、交叉驗證集和測試集,樣本劃分時使假設訓練集中無異常樣本,交叉驗證集和測試集中有異常樣本;
      • 樣本劃分案例:數據集中有 10000 個正常樣本,20 個異常樣本,則將其劃分爲訓練集中有 6000 個正常樣本,交叉驗證集中有 2000 個正常樣本和 10 個異常樣本,測試集中有 2000 個正常樣本和 10 個異常樣本;
      • 訓練集中正常樣本數量較多,有利於擬合高斯分佈中的參數;
    • Step 2:在訓練集中擬合模型 p(x)p(x) 及參數 μ1,σ1,μ2,σ2,,μn,σn\mu_1,\sigma_1,\mu_2,\sigma_2,\dots,\mu_n,\sigma_n
      • 一般而言,異常檢測問題中,正常樣本數量遠多於異常樣本數量,因此評價偏斜類問題時,使用 F1F_1-score 作爲判斷依據;
      • 在交叉驗證集中,使用多個 ϵ\epsilon,使 F1F_1-score 最大的 ϵ\epsilon 即爲最合適的閾值,也使用該方式決定選擇那些特徵;
    • Step 3:在測試集中評價算法;

2.2 異常檢測與監督學習的差異

  • Q:在異常檢測系統中使用了帶標籤的樣本,爲什麼不使用監督學習的方法解決該問題?
    A:
    • 異常檢測方法的適用場景:
      • 正常樣本較多,異常樣本較少;
      • 異常的種類較多,難以學到所有的異常類型,處理此前從未見過的異常類型;(導致引擎故障的原因有很多,算法難以通過較少的樣本,學到所有可能導致引擎故障的類型,也難以處理從未見過的新的異常類型)
    • 監督學習方法的適用場景:
      • 正常樣本和異常樣本均較多;
      • 算法能夠通過數量足夠的樣本學到故障類型,判斷新樣本時僅需將其與已有的故障類型對應即可;

n. Reference


  1. https://www.coursera.org/learn/machine-learning/home/welcome ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章