【深度之眼吴恩达机器学习第四期】笔记(十)

本文介绍了异常点检测的概念,通过飞机引擎数据集为例,阐述了如何利用高斯分布进行异常点识别。讨论了高斯分布的参数估计、密度估计以及异常点检测算法。同时对比了原始模型与多元高斯分布模型的优缺点,并给出了在实际应用中选择模型的建议。此外,还提到了异常点检测在作弊行为检测、工业标准检测和计算机集群监控中的应用。
摘要由CSDN通过智能技术生成

异常点检测

假如有一个关于飞机引擎的数据集,而且这些飞机引擎都是能良好运行的。现在得到一个新的飞机引擎的数据,希望知道它是否能运行良好。
在下图中,红色的数据点是正常的样本,那么,右下角的绿色点就是一个异常点
在这里插入图片描述
对于给定的数据集,异常点检测学习到的模型是P(x),也就是说,给定一个数据,预测得到一个概率,代表该数据正常的概率。如果这个概率小于特定阈值,那么就认为它是一个异常点。
在这里插入图片描述
异常点检测的应用

  1. 作弊行为检测。使用登录频率,某个页面的访问次数(或交易次数),用户在论坛上的发帖次数,打字的频率等等,检测这个用户的行为是否正常(作弊行为)。然后进行进一步筛选或要求该用户给出身份验证等等,从而保证网站的安全。
  2. 工业上检测某个新零件是否符合标准
  3. 在计算机集群中检测计算机是否运行良好。如果一个计算机运行良好的概率很低,那么它有可能出现什么问题了,可以让工作人员去人工检查一下。
    在这里插入图片描述

高斯分布

如果x服从均值为mu和方差为sigma2的高斯分布。mu是概率最大的x,sigma和钟型线的下降速度有关,sigma越小,钟型线越高,越瘦;sigma越大,钟型线越矮,越胖。因为对于钟型线积分,结果总是1
在这里插入图片描述
当x=mu+sigma的时候,指数上的数恒为-1/2,决定该点概率(钟型线高度)的就只有sigma。sigma越大,该点概率越小,所以整体图形就更胖。
在这里插入图片描述
参数估计:给定一组数据,假设它服从高斯分布,那么就需要求出高斯分布中的mu和sigma。通过极大似然估计可以得到mu和sigma的公式如下。学过概率论的人可能会知道概率论中sigma2分母是m-1而不是m,这两个理论上有差别,但是在实际应用中,由于机器学习的数据量很大,所以两者差别并不大
在这里插入图片描述
密度估计:假设数据X的每个分量都服从高斯分布,那么X=Xi的概率就是Xi的每一个特征取特定值的概率的乘积。当然,前面的说法是在X的各个特征独立的情况下才成立的,但是实际应用中,就算特征不独立,这个方法也能得到很好的结果
在这里插入图片描述
异常点检测算法

  1. 选择你认为对异常点检测有用的特征;
  2. 对每个特征,求出mu和sigma;
  3. 计算出p(x),如果p(x)<epsilon,那么这个点就是异常点。
    在这里插入图片描述

异常点检测的例子
在这里插入图片描述
评估系统:如果有一个方法能评估系统的好坏程度,那么在要不要增加新特征等问题上会方便得多。
假设的数据集是有标签的,然后把它们分为训练集,验证集和测试集。训练集上训练数据是不需要使用标签的,而且训练集上的数据都是正常的(其实混进少量的异常数据也不会有很大问题)。
在这里插入图片描述
一般来说,异常点检测的数据中y=1的(异常的)都很少。60%,20%,20%是一个不错的划分方式。但有人会使用60%,40%,40%的数据划分方式(测试集和验证集完全相同),不建议这么做,但是在异常点检测中,有人会这么做。
在这里插入图片描述
由于样本分布不平均(异常点很少),所以不能直接使用预测准确率来评估模型,应该使用F1分数
超参数epsilon需要通过验证集来选择
在这里插入图片描述

异常点检测和监督学习

既然异常点检测也有数据标签,为什么不直接用监督学习来学习模型呢?

  1. 如果正负样本都很多,那么的确可以使用监督学习来学习模型。但是如果正样本(异常点)很少(一般只有0-20个,最多50来个),监督学习就可能没办法得到很好的结果。
  2. 可以从另一个方面考虑为什么使用异常点检测。异常点有很多种类型,在正样本很少的时候,监督学习并不能学习到所有类型的异常,而且新的异常有可能和已有的异常是完全不同类型的。而在正负样本都很多的时候,负样本很大概率包含了所有的异常类别,所以新样本的异常类型会和以前的相似,这时就应该使用监督学习。

换句话说,监督学习是同时学习正负样本的特点,然后根据这些特点判别一个新样本是正样本还是负样本。而异常点检测只学习负样本的特点,如果新样本不符合负样本的特点,那么它就是正样本。
在这里插入图片描述

选择特征

之前一直都是假设特征服从高斯分布的,如果它不符合高斯分布怎么办
在使用特征前,先把特征的分布直方图画出来,如果它符合高斯分布,那很好;如果不符合,那么就可以对它做一些变换。其实就算它不是高斯分布也能运行正常,所以画出分布直方图只是一种检测
可以对数据进行对数变换,多项式变换等等,从而使数据看起来更像高斯分布。
在这里插入图片描述
误差分析:对于异常点,希望p(x)比较小,对于正常点,希望p(x)比较大。但是,如果正常点和异常点的预测概率p(x)都很大怎么办?比如左图中的异常点(绿色叉)就有比较大的概率。应该把这个异常点拿出来,人为地找到一些新的特征,这样就能使异常点的概率p(x)比较小了。
在这里插入图片描述
一个增加新特征的例子:在监督计算机集群时,假设CPU负载和网络流量是成线性关系的,但是出现了一个问题,计算机进入了死循环,这时CPU负载很高,但是网络流量很低。那么就可以设计一个新的特征为CPU负载/网络流量,或者CPU负载2/网络流量(这和原来的特征不会线性相关)。
在这里插入图片描述

多元高斯分布

如果直接使用上面的方法计算p(x)的概率,那么概率的等高线应该是粉红色的线,对于绿色的叉来说,这个模型会认为它不是异常点。
实际上,概率的等高线是蓝色的线,这就要用到多元高斯分布。
在这里插入图片描述
多元高斯分布不使用单独的sigma,而是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值