吴恩达视频课程之异常检测笔记

版权声明:本文为博主原创文章,转载请标明原始博文地址。 https://blog.csdn.net/yuanlulu/article/details/81463185

概述

本笔记整理自网易云课堂吴恩达的《机器学习》。

吴恩达所讲的异常检测属于无监督学习。即利用已有的无标签数据求取样本的分布模型参数(正太分布参数),然后对新来的数据计算属于这个分布的概率,当概率大于一个阈值时认为测数据是正常的,否则认为是异常数据。

(由于插入图片和公式不方便,本文没有图片和公式)

异常检测的一些场景

工程诊断(发动机异常检测)、异常行为检测、数据中心硬件监控等。

和监督学习的比较

上面说了,异常检测属于无监督学习。意味着样本没有标注,或者是有噪音的。在选择是否采用监督学习算法还是异常检测时,有些原则可以参考。

适用异常检测的场景如下:

  • 当正样本很少、负样本很多时
  • 异常的种类太多,算法无法从样本中学习正样本的规律,或者以后的异常和当前的异常样本有较大差异
适用异常检测的一些领域:
  • 欺诈检测、发动机异常检测和数据中心设备监控

适用监督学习的场景如下:

  • 当正负样本都很多
  • 有足够的正样本用于学习,并且后续的异常和当前的异常样本很像
适用监督学习的一些领域:
  • 垃圾邮件筛选、天气预报、癌症筛查

异常检检测的错误分析

特征映射

当数据不是严格的高斯分布时,使用异常检测算法也不会有太大问题。

当数据和高斯分布差别比较大时,可以转化为接近高斯分布。转换的方式就是对特征值适用一个公式进行映射,比如log或者其他公式。

错误分析

我们期望:正常样本的p(X)很大,异常样本的p(X)很小。

但是更一般的情况是,正负样本的p(X)都很大。这时我们可能要试着增加一些特征,把正负样本分开。

多元高斯

普通高斯在二维上定义的区域是一个椭圆,而且每个维度上都轴对称,这并不符合很多样本的分布规律,因此引入多元高斯。多元高斯分布不再独立的处理每个特征的概率,而是把这些特征放到一个公式里来。

可以改变多元高斯的参数(协方差矩阵),使得在某些维度上变宽和变窄。

扫描二维码关注公众号,回复: 3072091 查看本文章

也可以调整参数,使多元高斯分布的走向改变(变倾斜)。

但是,原始高斯模型比多元高斯模型更常用(吴恩达说的,我也每用过)。

原始高斯模型具有以下特点:
- 往往需要手工增加一些特征值(使用其它特征组合而来)来捕捉异常
- 相对多元高斯,原始高斯计算量更小
- 即使训练集很小也能良好工作

多元高斯的特点:
- 能自动捕捉特征之间的关系(不用人工合成新特征)
- 计算量相对原始高斯比较大(协方差矩阵是nXn的)
- 样本数量必须大于特征数量,并且sigam必须可逆(如果sigma不可逆,可能是m小于n了,或者有一些冗余特征,当然这种情况很小)。吴恩达建议n>10m时使用多元高斯

代码实现

sklearn中提供了一种基于正太分布的异常检测算法:Fitting an elliptic envelope(椭圆模型拟合)。具体代码可以参考前面的一篇文章。

这种算法和吴恩达讲的多元高斯比较接近。但是算法对于后续样本输出的不是概率,而是布尔类型,因为政府样本的分界在训练样本的时候就决定了。

猜你喜欢

转载自blog.csdn.net/yuanlulu/article/details/81463185