异常检测----高斯模型

问题提出

实际生产过程中,出产投入使用之前,经常会评价某些参数是否有异常,然后再判断是否要重新检测。评价并不是简单的根据特定参数的阈值来的,而是根据宏观上产出群体的所有参数分布得出的。
比如生成飞机引擎,震动和热量参数,对所有出产的引擎进行测试,得到如下分布:
这里写图片描述
为了评价这种差异,定性分析如下:
这里写图片描述

高斯分布

从上面的直观感受、定性分析可知越接近中心区域的越不可能是异常。为了定量分析,引入高斯分布。即认为所有的参数符合高斯分布。数学表达为:X∽N(μ,σ2)” role=”presentation” style=”position: relative;”>XN(μ,σ2)X∽N(μ,σ2)为方差。

这里写图片描述

高斯分布的异常检测算法

这里写图片描述

开发和评估一个异常检测系统

  • 训练、交叉检验、测试样本分配比例:
    这里写图片描述
  • 使用F1−score” role=”presentation” style=”position: relative;”>F1scoreF1−score1公式进行评估
    F1−score=2pqp+q” role=”presentation” style=”text-align: center; position: relative;”>F1score=2pqp+qF1−score=2pqp+q

    其中p” role=”presentation” style=”position: relative;”>pp分别表示查准率和召回率

异常检测和有监督学习对比

  • 特性区别
异常检测 有监督学习
正样本比较少 正样本充足
异常类型很多,且不可预测 待检测的正样本与已检测过的相似
  • 使用场景区别
异常检测 有监督学习
欺骗检测 垃圾邮件分类
制造业质检 天气预测
动力环境监测 癌症分类
…. ….

选择用什么属性

调整属性,以满足高斯分布。如下图,先得到所有样本某一属性x1” role=”presentation” style=”position: relative;”>x1x1取对数:
这里写图片描述

多变量高斯分布

直接用与样本中心点的距离来评价是否异常有时候不准确,如下图:
这里写图片描述

图中绿色的点距离样本中心比较近,其中右边两个图为样本在两维度的投影。但是直观感觉也是应该检测出的异常点。为了应对这种情形,引入了多变量高斯分布。

多变量高斯分布,对应不同的均值μ” role=”presentation” style=”position: relative;”>μμ特性如下图:

这里写图片描述
这里写图片描述
这里写图片描述

多变量高斯分布的概率公式:

这里写图片描述

使用多变量高斯分布进行异常检测

这里写图片描述

多变量连乘模型 多变量高斯模型
需要手工设置新属性以求相关属性参数比例不对的,比如CPUloadmemory” role=”presentation” style=”position: relative;”>CPUloadmemoryCPUloadmemory 自动获取关联属性表现
计算简单 计算耗时,需要计算Σ−1” role=”presentation” style=”position: relative;”>Σ1Σ−1
即使属性数n” role=”presentation” style=”position: relative;”>nn很小,算法也可以跑起来 必须n&#x003C;m” role=”presentation” style=”position: relative;”>n<mn<m无解

—————

猜你喜欢

转载自blog.csdn.net/qq_40006058/article/details/80256690