【吴恩达机器学习】异常检测

1.问题动机

比如生产飞机引擎,需要进行质量测试,而作为测试的一部分,需要测量引擎的一些特征变量,比如引擎运转时产生的热量,或者引擎的振动等等。
于是就会有一个数据集从x_1到x_m,将这些数据绘制成图表,如图:
在这里插入图片描述

这样,异常检测问题可以定义如下:
假设有新的引擎生产出来,具有特征变量x_test,所谓的异常检测问题就是:我们希望知道这个新的飞机引擎是否有某种异常,或者说希望判断这个引擎是否需要进一步测试。

给定数据集 𝑥_1,𝑥_2, . . 𝑥_m,假使数据集是正常的,希望知道新的数据 𝑥_𝑡𝑒𝑠𝑡是不是正常的,即这个测试数据不属于该组数据的概率如何。我们所构建的模型应该能根据该测试数据的位置告诉我们其属于一组数据的可能性 𝑝(𝑥)。
在这里插入图片描述

上图中,在蓝色圈内的数据属于该组数据的可能性较高,而越是偏远的数据,其属于该组数据的可能性就越低。
这种方法称为密度估计,表达如:
在这里插入图片描述

模型𝑝(𝑥) 为其属于一组数据的可能性,若𝑝(𝑥) < 𝜀则检测非正常用户。

2.高斯分布推导异常推荐算法

1)对于给定的数据集𝑥_1,𝑥_2, . . 𝑥_m,要针对每一个样本计算均值和方差。
在这里插入图片描述

2)一旦算出平均值和方差的估计值,给定一个新的训练实例,根据模型计算:
在这里插入图片描述

3)当𝑝(𝑥) < 𝜀时,为异常。

异常检测算法的步骤:
在这里插入图片描述

3.开发和评价一个异常检测系统

异常检测算法是一个非监督学习算法。当开发一个异常检测系统时,从带标记(异常或正常)的数据着手,从其中选择一部分正常数据用于构建训练集,然后用剩下的正常数据和异常数据混合的数据构成交叉检验集和测试集。

例如:我们有 10000 台正常引擎的数据,有 20 台异常引擎的数据。 我们这样分配数据:
6000 台正常引擎的数据作为训练集
2000 台正常引擎和 10 台异常引擎的数据作为交叉检验集
2000 台正常引擎和 10 台异常引擎的数据作为测试集

具体的评价方法如下:
1.根据训练集数据,估计特征的平均值和方差并构建𝑝(𝑥)函数
2.对交叉检验集,尝试使用不同的𝜀值作为阀值,并预测数据是否异常,根据 F1 值或者查准率与查全率的比例来选择 𝜀
3.选出 𝜀 后,针对测试集进行预测,计算异常检验系统的𝐹1值,或者查准率与查全率之比。

4.异常检测与监督学习对比

在这里插入图片描述

5.选择特征

异常检测假设特征符合高斯分布,如果数据的分布不是高斯分布,异常检测算法也能够工作,但是最好还是将数据转换成高斯分布。例如使用对数函数:𝑥 = 𝑙𝑜𝑔(𝑥 + 𝑐),其中 𝑐为非负常数; 或者 𝑥 = 𝑥^𝑐,𝑐为 0-1 之间的一个分数等方法。

误差分析:
异常检测中,希望p(x)的值在正常样本的情况下比较大,在异常的情况下比较小;

常见的问题:当样本异常时,p(x)的值比较大,因而被算法认为是正常的。这种情况下误差分析能够帮助分析那些被算法错误预测为正常的数据,观察能否找出一些问题。我们可能能从问题中发现我们需要增加一些新的特征,增加这些新特征后获得的新算法能够帮助我们更好地进行异常检测。

我们通常可以通过将一些相关的特征进行组合,来获得一些新的更好的特征(异常数据的该特征值异常地大或小)。

6.多元高斯分布

在一般的高斯分布模型中,计算 𝑝(𝑥) 的方法是: 通过分别计算每个特征对应的概率然后将其累乘起来。
在多元高斯分布模型中,我们将构建特征的协方差矩阵,用所有的特征一起来计算 𝑝(𝑥)。
首先计算所有特征的平均值,然后再计算协方差矩阵:
在这里插入图片描述

注:其中𝜇 是一个向量,其每一个单元都是原特征矩阵中一行数据的均值。
最后我们计算多元高斯分布的𝑝(𝑥):
在这里插入图片描述

协方差矩阵是如何影响模型的:
在这里插入图片描述

上图是 5 个不同的模型,从左往右依次分析:
1.是一个一般的高斯分布模型
2.通过协方差矩阵,令特征 1 拥有较小的偏差,同时保持特征 2 的偏差
3.通过协方差矩阵,令特征 2 拥有较大的偏差,同时保持特征 1 的偏差
4.通过协方差矩阵,在不改变两个特征的原有偏差的基础上,增加两者之间的正相关性
5.通过协方差矩阵,在不改变两个特征的原有偏差的基础上,增加两者之间的负相关性

7.使用多元高斯分布进行异常检测

应用多元高斯分布的异常检测算法:

在这里插入图片描述

1)首先用训练集来拟合该模型:通过设定的μ和Σ来拟合p(x)
2)接着有测试样本x,按照多元高斯分布的公式计算p(x),如果得到p(x)<𝜀 ,就标记该样本异常。

多元高斯模型和原始模型的关系:
原始模型实际上就是某种特殊情况下的多元高斯分布,这种特殊的情形就是当协方差矩阵Σ在非对角线上都是0的时候。

原高斯分布模型和多元高斯分布模型的比较:
在这里插入图片描述

原高斯分布模型和多元高斯分布模型如何选择:
原高斯分布模型被广泛使用着,如果特征之间在某种程度上存在相互关联的情况,我们可以通过构造新特征的方法来捕捉这些相关性。
如果训练集不是太大,并且没有太多的特征,我们可以使用多元高斯分布模型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值