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 ↩︎

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