美文网首页
15.异常检测(anomaly detection)

15.异常检测(anomaly detection)

作者: justinwei | 来源:发表于2019-03-26 19:02 被阅读0次

    第九周、Lecture 15

    1. 假设所有的训练数据符合高斯分布(Gaussian(Normal) distribution)
      高斯分布
      均值(mean):\mu
      标准方差(standard deviation):\sigma^2
      P(x, \mu,\sigma^2) = \frac1{\sqrt{2\pi}}exp(-\frac{(x-\mu)^2}{2\sigma^2})
      其中:
      \mu=\frac1m\sum_{i=1}^mx^{(i)}
      \sigma^2=\frac1m\sum_{i=1}^m(x^{(i)}-\mu)^2
    2. 算法描述:
      1.)选择特性x_i是一组符合高斯分布的特证向量,x_i \in R^n
      2.)计算\mu_1, \mu_2,..., \mu_n, \sigma_1^2,\sigma_2^2,...,\sigma_n^2
      \mu_j=\frac1m\sum_{i=1}^mx_j^{(i)}
      \sigma_j^2=\frac1m\sum_{i=1}^m(x_j^{(i)}-\mu)^2
      3.) 对于一个新的x值的概率p(x)
      p(x)=\prod_{j=1}^np(x_j,\mu_j, \sigma_j^2)=\prod_{j=1}^n \frac1{\sqrt{2\pi}}exp(-\frac{(x_j-\mu_j)^2}{2\sigma_j^2})

    \prod_{j=1}^nx_j = x_1\times x_2 \times ... \times x_n

    3.异常检测系统的开发和评价
    给定一组训练集(x,y) , “y=0”(正常 non-anomalous), "y=1"(异常 anomalous)
    1.) 把数据拆分成训练集和验证集/测试集(cross validation/test)
    2.) 计算训练集(x^{(1)},x^{(2)},...,x^{(m)})的概率p(x)
    3.) 在验证集中
    y= \begin{cases}{1, if\ p(x) < \varepsilon(异常 anomalous)} \\ {0, if\ p(x) \geq \varepsilon (正常 non-anomalous)} \end{cases}
    求出 F_1-score最大值对应的\varepsilon
    F_1-score = \frac{precision \times Recall}{precision + Recall}

    1. 异常检测 vs. 监督学习
    异常检测 监督学习
    - 非常小的异常数据"y=1"的数据
    - 非常大的正常数据
    - 太多的异常数据类别
    -"y=1"和"y=1"的数据量相差不大
    例如:
    - 欺诈检测
    - 制造业的那异常产品
    - 数据中心的监控
    - 垃圾邮件
    - 天气预报
    - 肿瘤分类

    5.选择特征变量(feature)
    1.) 非高斯分布的特征可以通过函数变换,例如log(x)

    image.png
    2.) 异常检测的误差分析(error analysis for anomaly detection)
    目标:找到x,使
    正常(normal)的概率P(x)最大
    异常(anomaly)的概率P(x)最小
    例如:如下图所示
    image.png
    如果x1是异常,使是x1出现的概率p(x)值特别大说明x的特性(feature)不对,要找出其他的特征值(feature),使概率最小。
    实际的例子:
    对于数据中心的异常监控(monitoring computers in data center)
    x_1=内存,x_2=磁盘访问次数/秒,x_3=cpu值,x_4=网络压力
    发现p(x_3),和p(x_4)分布在异常点但并非异常
    这些找出x_5=\frac{x_3}{x_4} ,既\frac{CPU}{网络压力}分布处于异常点
    1. 多变量高斯分布(multivariate Gaussian distribution)
      前面的算法是P(x) = P(x_1) \times P(x_2) \times ... \times P(x_n) = \prod_{i=1}^{n}P(x_i)
      对于多变量高斯分布(multivariate Gaussian distribution)不再计算每个变量x_i的对应的p(x_i)然后相乘。
      而是做为一个整体计算p(x),x \in R^{\ m \times n}
      参数\mu为n维向量 \mu \in R^n
      参数\Sigma为n times n 的矩阵 \mu \in R^{\ n \times n}
      P(x, \mu, \Sigma)=\frac1{(2\pi)^{n/2}|\Sigma|^{1/2}}exp(-\frac12(x-u)^T)\Sigma^{-1}(x-\mu))
      \mu = \frac1m\sum_{i=1}^mx^{(i)}
      \Sigma= \frac1m\sum_{i=1}^m(x^{(i)}-\mu)(x^{(i)}-\mu)^T
    原来的模型(original mode) 多变量高斯分布(multivariate Gaussian distribution)
    需要人工选择变量,找出异常值,
    例如前面提到的 x_3=\frac{cpu}{memory}
    优点是计算量更小
    可以自动获取异常值
    计算量比较大
    m>n否则\Sigma求不出来

    相关文章

      网友评论

          本文标题:15.异常检测(anomaly detection)

          本文链接:https://www.haomeiwen.com/subject/swbgvqtx.html