异常检测(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 的负载,网络的通信量等。根据这些特征可以构建一个模型,用来判断某些计算机是 不是有可能出错了。
高斯分布(正态分布)
求一组数据服从怎样的高斯分布,高斯分布实际上是概率密度的描述
其中u与sigma是求得极大似然估计
利用高斯分布实现异常检测
三步
- 选择样本
- 计算μ和sigma
- 用算出的μ和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)的更多相关文章
- [C10] 异常检测(Anomaly Detection)
异常检测(Anomaly Detection) 问题的动机 (Problem Motivation) 异常检测(Anomaly detection)问题是机器学习算法中的一个常见应用.这种算法的有趣之 ...
- 机器学习(十一)-------- 异常检测(Anomaly Detection)
异常检测(Anomaly Detection) 给定数据集
- 吴恩达机器学习笔记(九) —— 异常检测(Anomaly detection)
主要内容: 一.模型介绍 二.算法过程 三.算法性能评估及ε(threshold)的选择 四.Anomaly detection vs Supervised learning 五.Multivaria ...
- 基于高斯分布的异常检测(Anomaly Detection)算法
记得在做电商运营初期,每每为我们频道的促销活动锁取得的“超高”销售额感动,但后来随着工作的深入,我越来越觉得这里面水很深.商家运营.品类运营不断的通过刷单来获取其所需,或是商品搜索排名,或是某种kpi ...
- 异常检测(Anomaly detection): 什么是异常检测及其一些应用
异常检测的例子: 如飞机引擎的两个特征:产生热量与振动频率,我们有m个样本画在图中如上图的叉叉所示,这时来了一个新的样本(xtest),如果它落在上面,则表示它没有问题,如果它落在下面(如上图所示), ...
- Ng第十五课:异常检测(Anomaly Detection)
15.1 问题的动机 15.2 高斯分布 15.3 算法 15.4 开发和评价一个异常检测系统 15.5 异常检测与监督学习对比 15.6 选择特征 15.7 多元高斯分布(可选) 15 ...
- 异常检测(Anomaly detection): 异常检测算法(应用高斯分布)
估计P(x)的分布--密度估计 我们有m个样本,每个样本有n个特征值,每个特征都分别服从不同的高斯分布,上图中的公式是在假设每个特征都独立的情况下,实际无论每个特征是否独立,这个公式的效果都不错.连乘 ...
- 异常检测(Anomaly detection): 高斯分布(正态分布)
高斯分布 高斯分布也称为正态分布,μ为平均值,它描述了正态分布概率曲线的中心点.σ为标准差,σ2为方差,σ描述了曲线的宽度.在中心点附近概率密度大,远离中心点概率密度小. 高斯分布图 概率曲线下方的面 ...
- Coursera在线学习---第九节(1).异常数据检测(Anomaly Detection)
一.如何构建Anomaly Detection模型? 二.如何评估Anomaly Detection系统? 1)将样本分为6:2:2比例 2)利用交叉验证集计算出F1值,可以用F1值选取概率阈值ξ,选 ...
随机推荐
- 学JS的心路历程-Promise(二)
昨天有说到Promise的创建以及then的用法,今天我们来看错误处理. then onRejected 我们昨天有提到说,then两个函式参数,onFulfilled和onRejected,而onR ...
- python 稀疏向量和矩阵的表示形式
http://blog.csdn.net/nkwangjie/article/details/17502443 http://blog.csdn.net/bitcarmanlee/article/de ...
- 历届试题 买不到的数目-(dp)
问题描述 小明开了一家糖果店.他别出心裁:把水果糖包成4颗一包和7颗一包的两种.糖果不能拆包卖. 小朋友来买糖的时候,他就用这两种包装来组合.当然有些糖果数目是无法组合出来的,比如要买 10 颗糖. ...
- @JsonInclude注解,RestTemplate传输值为null的属性,利用FastJson将属性中有空值null的对象转化成Json字符串
一个pojo类: import lombok.Data; @Data public class Friend { private String name; private int age; priva ...
- /src/log4j.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration S ...
- win10自带IE上不了网的解决办法
1.cmd以管理员身份运行powershell. 2.输入以下三条程序. netsh int tcp set heuristics disabled 回车执行后再输入 netsh int tcp se ...
- 一、Iterator 迭代器
需求:如何不适用for循环,依次遍历出数组中每个元素? 设计原理: 代码清单: 接口类 public interface Iterator { boolean hasNext(); Object ne ...
- 【C++】Mandelbrot集绘制(生成ppm文件)
曼德勃罗特集是人类有史以来做出的最奇异,最瑰丽的几何图形.曾被称为"上帝的指纹". 这个点集均出自公式:Zn+1=(Zn)^2+C.(此处Z.C均为复数)所有使得该公式无限迭代后的 ...
- matlab画图标题自定义字体大小
title('标题','fontname','Times New Roman','Color','b','FontSize',20);字体是Times New Roman,颜色是蓝色('b'即blue ...
- 脚手架搭建vue框架
一. node安装 1)如果不确定自己是否安装了node,可以在命令行工具内执行: node -v (检查一下 版本): 2)如果 执行结果显示: xx 不是内部命令,说明你还没有安装node , ...