本文重点
前面学习的异常检测算法使用的是高斯分布,但是它会有一些问题,本节课程我们使用多元高斯分布。
高斯分布的问题
现在有一个数据集,其中特征x1表示cpu的负载,特征x2表示内存使用量,如果我把这两个特征变量当作高斯分布来建模。建模效果如下所示:
我们可以看到如果这样建模的话,绿色样本看起来和很多红色样本一样,并不是异常的。但是可以看到这个绿×离其它红色任何数据都远,而且一个正常的样本应该是CPU负载和内存使用量是彼此线性增长的关系(内存使用量高,CPU负载也应该很高),所以这个样本应该是异常的样本,但是我们的算法对此却无能为力。
因为算法是根据判定边界来决定样本是否是异常样本的,我们可以看到绿×是符合最外面那个判定边界的(ε决定的),所以当我们使用此时的ε来判定时,我们的算法就会认定这个样本不是异常样本。
如何解决这个问题
第一个构建一个新特征=内存量/CPU负载
第二个我们可以想方设法让我们的算