• 机器学习(7)- 异常检测


    根据Andrew Ng在斯坦福的《机器学习》视频做笔记,已经通过李航《统计学习方法》获得的知识不赘述,仅列出提纲。

    1 异常检测

    对数据建模,形成概率分布函数(p(x));检查(p(x_{test}))的值

    e.g.

    • 欺诈检测:可以找出行为异常的用户
    • 工业领域
    • 数据中心的计算机监控

    1.1 高斯分布/正态分布(x ~ N(mu,sigma^2))

    (mu):平均值,控制钟形曲线的中心位置

    (sigma^2):方差,控制钟形曲线的宽度

    (p(x;mu,sigma^2)=frac{1}{sqrt{2pi}}exp(-frac{(x-mu)^2}{2sigma^2}))

    参数估计

    (mu=frac{1}{m}sum_{i=1}^mx^{(i)})

    (sigma^2=frac{1}{m}sum_{i=1}^m(x^{(i)}-mu)^2)

    密度估计

    (p(x)=p(x_1;mu_1,sigma_1^2)p(x_2;mu_2,sigma_2^2)p(x_3;mu_3,sigma_3^2)cdots p(x_n;mu_n,sigma_n^2)=prod_{j=1}^np(x_j;mu_j,sigma_j^2))

    1.2 异常检测算法

    1. 选择特征<见[1.4](#1.4 选择特征)>
    2. 参数估计(mu_j,sigma_j^2)或者(mu,Sigma)<见[1.5](#1.5 多元高斯分布)>
    3. 给定新样本,进行密度估计,如果比(epsilon)小,则异常

    开发和评估

    训练集:60%无异常的样本,估计特征的平均值和方差并构建(p(x))函数

    交叉验证集:20%无异常的样本+50%异常的样本,使用交叉验证集选择(epsilon),根据(F_1)值来选择

    测试集:20%无异常的样本+50%异常的样本

    度量标准:

    • TP,FN,FP,TN
    • 精确率/召回率
    • (F_1-score)

    1.3 异常检测 vs. 监督学习

    异常检测 监督学习
    非常少量的正向类(异常数据 (y=1)), 大量的负向类((y=0) 同时有大量的正向类和负向类
    许多不同种类的异常。根据非常少量的正向类数据来训练算法非常难。 有足够多的正向类实例,足够用于训练算法。
    未来遇到的异常可能与已掌握的异常、非常的不同。 未来遇到的正向类实例可能与训练集中的非常近似

    1.4 选择特征

    非高斯分布的特征:通过对数函数、开方等方法对特征进行修改,使其图形接近高斯分布

    正常和异常样本相近:找出问题,创建新特征

    1.5 多元高斯分布

    不是对(p(x_i))建模,而是一次性对(p(x))建模;参数(mu)就是一个(n)维向量,(Sigma)是一个(n×n)的协方差矩阵

    (p(x;mu,sigma^2)=frac{1}{(2pi)^{frac{n}{2}}|Sigma|^{frac{1}{2}}}exp(-frac{(x-mu)^TSigma^{-1}(x-mu)}{2}))

    参数估计

    (mu=frac{1}{m}sum_{i=1}^mx^{(i)})

    (Sigma=frac{1}{m}sum_{i=1}^n(x^{(i)}-mu)(x^{(i)}-mu)^T)

    可以发现,之前的高斯分布,它是这里的多元高斯分布的一种特殊情况,即(Sigma)矩阵的非对角线元素都为0

    优点:可以自动捕获特征之间的关系→而原始模型就需要手动创建新特征

    缺点:计算花费大;(m>n),否则协方差矩阵不可逆((mge 10n)

  • 相关阅读:
    IE浏览器请求数据是提示下载的问题
    jS清除浏览器缓存
    JS获取时间戳
    keycode
    JS简单解决并发量
    写移动端流氓方法,无意看到,分享下
    CSS中的rem的换算
    jsp会话监听
    jsonp在jsp中的使用
    Java中的位运算符
  • 原文地址:https://www.cnblogs.com/angelica-duhurica/p/10962078.html
Copyright © 2020-2023  润新知