异常检测(Anomaly Detection)

Posted rebeca8

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异常检测(Anomaly Detection)相关的知识,希望对你有一定的参考价值。

十五、异常检测(Anomaly Detection) 15.1 问题的动机

参考文档: 15 - 1 - Problem Motivation (8 min).mkv

在接下来的一系列视频中,我将向大家介绍异常检测(Anomaly detection)问题。这是机 器学习算法的一个常见应用。这种算法的一个有趣之处在于:它虽然主要用于非监督学习问 题,但从某些角度看,它又类似于一些监督学习问题。

什么是异常检测呢?为了解释这个概念,让我举一个例子吧: 假想你是一个飞机引擎制造商,当你生产的飞机引擎从生产线上流出时,你需要进行

QA (质量控制测试),而作为这个测试的一部分,你测量了飞机引擎的一些特征变量,比如 引擎运转时产生的热量,或者引擎的振动等等。

这样一来,你就有了一个数据集,从 x(1)到 x(m),如果你生产了 m 个引擎的话,你将这 些数据绘制成图表,看起来就是这个样子:

这里的每个点、每个叉,都是你的无标签数据。这样,异常检测问题可以定义如下:我 们假设后来有一天,你有一个新的飞机引擎从生产线上流出,而你的新飞机引擎有特征变量

xtest。所谓的异常检测问题就是:我们希望知道这个新的飞机引擎是否有某种异常,或者说,

我们希望判断这个引擎是否需要进一步测试。因为,如果它看起来像一个正常的引擎,那么 我们可以直接将它运送到客户那里,而不需要进一步的测试。

给定数据集 x(1),x(2),..,x(m),我们假使数据集是正常的,我们希望知道新的数据 xtest 是不 是异常的,即这个测试数据不属于该组数据的几率如何。我们所构建的模型应该能根据该测

试数据的位置告诉我们其属于一组数据的可能性 p(x)。

上图中,在蓝色圈内的数据属于该组数据的可能性较高,而越是偏远的数据,其属于该 组数据的可能性就越低。

这种方法称为密度估计,表达如下:

欺诈检测:

X(i) = 用户的第 i 个活动特征

模型 p(x) =我们其属于一组数据的可能性 通过 p(x)<ε 检测非正常用户。

异常检测主要用来识别欺骗。例如在线采集而来的有关用户的数据,一个特征向量中可 能会包含如:用户多久登录一次,访问过的页面,在论坛发布的帖子数量,甚至是打字速度 等。尝试根据这些特征构建一个模型,可以用这个模型来识别那些不符合该模式的用户。

再一个例子是检测一个数据中心,特征可能包含:内存使用情况,被访问的磁盘数量, CPU 的负载,网络的通信量等。根据这些特征可以构建一个模型,用来判断某些计算机是 不是有可能出错了。

 

anomaly detection(异常检测)笔记
 机器学习 学习     2017-08-15 13:32:45     41     0     0

高斯分布(正态分布)

  1. 求一组数据服从怎样的高斯分布,高斯分布实际上是概率密度的描述

技术分享图片
其中u与sigma是求得极大似然估计

利用高斯分布实现异常检测

三步

  1. 选择样本
  2. 计算μ和sigma
  3. 用算出的μ和sigma计算新样本的概率。

技术分享图片

为什么概率要用乘积

例如 当两个2d分布的乘积是这样的 
技术分享图片

实际使用和评价异常检测算法

实数评价算法极其重要。 
如果使用有标签的数据,例如引擎检测 
我们先取一部分没有问题的数据作为训练集拟合数据 
再取一部分没问题的数据和少量有问题的数据作为cv数据集 
同样取一份测试集 
例子如下图 
技术分享图片

因为ylabels是非常偏斜的异常的引擎只是很小的比例,有监督学习总是预测y=0,这样正确率会很高但是这样是不对的。

所以在这里我们也采用precision/recall和f1-score来评估 
其中判断的阈值可以通过交叉验证集尝试多次。 
技术分享图片

Anomaly Detection vs. Supervised Learning

异常检测,反例大量,正例很少。 
监督学习,正反例的数量都很大。 
如果有足够多的数据足够拟合监督学习,并且未来要预测的样本与我用来拟合的样本很相似。此时可能会选择监督学习。

理解:当我有足够的数据拟合相对于较少的数据的时候,使用监督学习。 
到底是不是,看经验和脑子。

一些常见应用的选择

技术分享图片

选择特征

如果一个分布图稍微扭曲一点 
对X做一些处理可能会让他看起来更像高斯分布 
技术分享图片

如果一个异常样本最后的概率很大,这时我们应该观察这个样本,试图添加新的特征可以区分这个样本。

多元高斯分布

不再一个特征一个特征算,直接用x算u是n阶向量,sigma是n*n的矩阵,就可以通过改变矩阵实现对高斯分布的一些变换。 
技术分享图片

技术分享图片

实际使用异常检测与多元高斯分布

高斯公式 
技术分享图片

1.估计参数μ、sigma 
技术分享图片

2.给出新的x,计算px 
技术分享图片
如果px很小我们会把它当初异常

原始模型属于多元高斯模型的一个特例 
选择 
技术分享图片
ps:如果最后sigma是奇异矩阵可能是有多余特征或是m
























以上是关于异常检测(Anomaly Detection)的主要内容,如果未能解决你的问题,请参考以下文章

异常检测(Anomaly Detection)

异常检测(Anomaly detection): 异常检测算法(应用高斯分布)

Graph Anomaly Detection with Deep Learning——图检测

Ng第十五课:异常检测(Anomaly Detection)

Ng第十五课:异常检测(Anomaly Detection)

Graph Anomaly Detection with Deep Learning——边检测