十五、异常检测(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)的更多相关文章

  1. [C10] 异常检测(Anomaly Detection)

    异常检测(Anomaly Detection) 问题的动机 (Problem Motivation) 异常检测(Anomaly detection)问题是机器学习算法中的一个常见应用.这种算法的有趣之 ...

  2. 机器学习(十一)-------- 异常检测(Anomaly Detection)

    异常检测(Anomaly Detection) 给定数据集

  3. 吴恩达机器学习笔记(九) —— 异常检测(Anomaly detection)

    主要内容: 一.模型介绍 二.算法过程 三.算法性能评估及ε(threshold)的选择 四.Anomaly detection vs Supervised learning 五.Multivaria ...

  4. 基于高斯分布的异常检测(Anomaly Detection)算法

    记得在做电商运营初期,每每为我们频道的促销活动锁取得的“超高”销售额感动,但后来随着工作的深入,我越来越觉得这里面水很深.商家运营.品类运营不断的通过刷单来获取其所需,或是商品搜索排名,或是某种kpi ...

  5. 异常检测(Anomaly detection): 什么是异常检测及其一些应用

    异常检测的例子: 如飞机引擎的两个特征:产生热量与振动频率,我们有m个样本画在图中如上图的叉叉所示,这时来了一个新的样本(xtest),如果它落在上面,则表示它没有问题,如果它落在下面(如上图所示), ...

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

    15.1  问题的动机 15.2  高斯分布 15.3  算法 15.4  开发和评价一个异常检测系统 15.5  异常检测与监督学习对比 15.6  选择特征 15.7  多元高斯分布(可选) 15 ...

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

    估计P(x)的分布--密度估计 我们有m个样本,每个样本有n个特征值,每个特征都分别服从不同的高斯分布,上图中的公式是在假设每个特征都独立的情况下,实际无论每个特征是否独立,这个公式的效果都不错.连乘 ...

  8. 异常检测(Anomaly detection): 高斯分布(正态分布)

    高斯分布 高斯分布也称为正态分布,μ为平均值,它描述了正态分布概率曲线的中心点.σ为标准差,σ2为方差,σ描述了曲线的宽度.在中心点附近概率密度大,远离中心点概率密度小. 高斯分布图 概率曲线下方的面 ...

  9. Coursera在线学习---第九节(1).异常数据检测(Anomaly Detection)

    一.如何构建Anomaly Detection模型? 二.如何评估Anomaly Detection系统? 1)将样本分为6:2:2比例 2)利用交叉验证集计算出F1值,可以用F1值选取概率阈值ξ,选 ...

随机推荐

  1. 学JS的心路历程-Promise(二)

    昨天有说到Promise的创建以及then的用法,今天我们来看错误处理. then onRejected 我们昨天有提到说,then两个函式参数,onFulfilled和onRejected,而onR ...

  2. python 稀疏向量和矩阵的表示形式

    http://blog.csdn.net/nkwangjie/article/details/17502443 http://blog.csdn.net/bitcarmanlee/article/de ...

  3. 历届试题 买不到的数目-(dp)

    问题描述 小明开了一家糖果店.他别出心裁:把水果糖包成4颗一包和7颗一包的两种.糖果不能拆包卖. 小朋友来买糖的时候,他就用这两种包装来组合.当然有些糖果数目是无法组合出来的,比如要买 10 颗糖. ...

  4. @JsonInclude注解,RestTemplate传输值为null的属性,利用FastJson将属性中有空值null的对象转化成Json字符串

    一个pojo类: import lombok.Data; @Data public class Friend { private String name; private int age; priva ...

  5. /src/log4j.xml

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration S ...

  6. win10自带IE上不了网的解决办法

    1.cmd以管理员身份运行powershell. 2.输入以下三条程序. netsh int tcp set heuristics disabled 回车执行后再输入 netsh int tcp se ...

  7. 一、Iterator 迭代器

    需求:如何不适用for循环,依次遍历出数组中每个元素? 设计原理: 代码清单: 接口类 public interface Iterator { boolean hasNext(); Object ne ...

  8. 【C++】Mandelbrot集绘制(生成ppm文件)

    曼德勃罗特集是人类有史以来做出的最奇异,最瑰丽的几何图形.曾被称为"上帝的指纹". 这个点集均出自公式:Zn+1=(Zn)^2+C.(此处Z.C均为复数)所有使得该公式无限迭代后的 ...

  9. matlab画图标题自定义字体大小

    title('标题','fontname','Times New Roman','Color','b','FontSize',20);字体是Times New Roman,颜色是蓝色('b'即blue ...

  10. 脚手架搭建vue框架

    一. node安装 1)如果不确定自己是否安装了node,可以在命令行工具内执行: node -v  (检查一下 版本): 2)如果 执行结果显示: xx 不是内部命令,说明你还没有安装node , ...