Anomaly Detection

Problem motivation:

首先描写叙述异常检測的样例:飞机发动机异常检測

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVydXp1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

直观上发现,假设新的发动机在中间,我们非常大可能觉得是OK的。假设偏离非常大。我们就须要很多其它检測确定是否为正常发动机。

以下进行数学形式上的描写叙述,通过概率密度进行预计。例如以下图:


对正常的数据进行建模。求Xtest的概率。当处于中心位置时概率比較大。而且大于设定的阈值,我们判定为OK状态,在远离中心状态。概率比較小,小于设定阈值我们判定为anomaly点。

Anomaly detection常见应用:


NG课上提到了三个应用方向,第一个是最開始举例的飞机引擎。然后是欺诈发现,这个在信用卡和购物站点上得到广泛应用。最后一个是产业界应用,我们须要监视一个计算机系统。我们通过正常执行系统的 内存使用、CUP load等建模。当系统某个值不在正常范围就可以能是计算机系统中有电脑出现异常状态。

习题:当我们系统建模后,导致把异常状态推断为正常状态,这时须要减少阈值避免误判。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVydXp1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

GaussianDistribution:

复习高斯分布一些内容,比較熟悉能够直接跳过。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVydXp1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

图型和概率分布函数。



上图均值方差表如今高斯分布图型上的差异。

Parameter estimation:

简单的说就是预计均值和方差。下图中写出的公式事实上能够通过极大似然预计进行数学上的求解证明。这里就不具体说(翻开数理统计课本能够找到)。求方差公式中能够选择m或者m-1这都无所谓,由于往往数据集非常大。这样最后计算结果没什么差别,在机器学习中通常选择m而在统计学中往往选择m-1。

选择m还是m-1在理论上有非常大差别,可是实际应用上没什么太大差别。


习题:高斯分布密度函数求解

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVydXp1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

Algorithm

密度函数预计算法:


求P(X)就是密度预计过程。

连乘公式须要每个条件独立,可是假设不是条件独立也能这么计算得到正确结果。

习题:对均值方差预计公式。

J下标表示第J个特征


Anomaly detectionalgorithm


1.     选择你觉得可以区分是否为anomalous 的样例特征。

2.     拟合參数即均值和方差。

3.     计算给定数据集上的联合概率密度函数。假设小于设定阈值则判定为异常数据。

进行实例描写叙述这个算法:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVydXp1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

依照上面所写三步流程即可计算:看左下角图。假设我们计算联合概率值较大图形上反映为高度较高,则判定为normal,假设计算得到高度较低,判定为异常。

到这里为止还仅仅是描写叙述了算法运行流程。我们并没有深入描写叙述每一步细节。

Developing andEvaluating an Anomaly Detection System

我们会发现能用一个数值标准去评价一个学习算法是很重要的,我们能够尝试增加某个feature进行评估,然后去掉该feature再次进行评估。这样得到feature对学习算法的影响。

到如今为止异常检測我们仅仅利用数据并没有数据类标签,是一种无监督学习。

如果我们已经有类标签标记的数据。这样使用异常检測算法就能非常好的进行评估!这是非常重要的一种思维转换。

继续上面提到的飞机发动机样例。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVydXp1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

我们推荐使用蓝色标记的划分,可是红色标记的划分也有人在这么操作。

算法效果的评估:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVydXp1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

习题:非常明显在test集上的accuracy不是好的评估标准。由于我们这里是倾斜类!须要用到Precision 和recall F_score来进行评估。

阈值的确定能够通过evaluation metric取值最大确定。当你在设计一个异常检測系统时,关键须要考虑选择何种feature、设定多大的阈值。


Anomaly DetectionVS Supervised Learning

讲到这里我们肯定都有困惑。当我们有数据类标签,为什么我们不直接使用监督性学习而使用Anomaly detection,接下来就对两者进行对照。

首先Anomaly detection 在数据集上特点是:非常少量的positive 数据,非常大量的negative数据,这样我们使用大量的negative数据可以好的拟合求得联合高斯概率密度函数。而supervised learning中 positive negative数据量都大。

其次我们有不同类型的异常数据,可是异常数据量非常小,不论什么算法都非常难在小的Anomaly数据集上学习得到Anomaly是什么样子。

上面两者对照是你应用Anomaly detection 还是supervise learning 的一些重要区分标准。

Spam是常常提到的一种学习系统。尽管我们有非常多类型的Spam。可是每种类型的Spam我们都有比較多的数据。所以Spam问题我们应用的是supervise learning。

事实上这两种状态并非全然切割的。举例说假设我们在交易时有非常多为Fraud的,则我们学习问题由Anomaly detection 转变为supervise learning。


习题:直观对两种情况的推断


ChoosingWhat Features to Use

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVydXp1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

前面说的方法都是假定数据满足高斯分布,也提到了假设分布不是高斯分布,上述方法也是能够使用,仅仅是假设我们对分布进行转换使得近似于高斯分布,那么会得到更好的效果。

上图就举例用log等函数进行转换。实现层面octave以下尝试转换就能够得到非常好近似高斯。

怎样选择feature:

思想类似于supervise learning中的error analysis ,当左边图进行学习时我们得到了错误结果,这时我们须要增加新的特征X2使得那个点与正常数据得到区分!如上图从左到右所看到的意。

还是回到前面提到的监视数据中心电脑,我们为了分析究竟是哪个特征引起Anomaly,通过构造新的feature来进行推断。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVydXp1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

习题:Anomaly detection 算法不能非常好区分开normal和Anomaly时。我们通常须要添加特征来使得它们得以区分。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVydXp1bg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

斯坦福NG机器学习课程:Anomaly Detection笔记的更多相关文章

  1. Andrew Ng机器学习课程笔记(五)之应用机器学习的建议

    Andrew Ng机器学习课程笔记(五)之 应用机器学习的建议 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7368472.h ...

  2. Andrew Ng机器学习课程笔记--week1(机器学习介绍及线性回归)

    title: Andrew Ng机器学习课程笔记--week1(机器学习介绍及线性回归) tags: 机器学习, 学习笔记 grammar_cjkRuby: true --- 之前看过一遍,但是总是模 ...

  3. Andrew Ng机器学习课程笔记--汇总

    笔记总结,各章节主要内容已总结在标题之中 Andrew Ng机器学习课程笔记–week1(机器学习简介&线性回归模型) Andrew Ng机器学习课程笔记--week2(多元线性回归& ...

  4. Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计

    Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7392408.h ...

  5. Andrew Ng机器学习课程笔记(四)之神经网络

    Andrew Ng机器学习课程笔记(四)之神经网络 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7365730.html 前言 ...

  6. Andrew Ng机器学习课程笔记(三)之正则化

    Andrew Ng机器学习课程笔记(三)之正则化 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7365475.html 前言 ...

  7. Andrew Ng机器学习课程笔记(二)之逻辑回归

    Andrew Ng机器学习课程笔记(二)之逻辑回归 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7364636.html 前言 ...

  8. Andrew Ng机器学习课程笔记(一)之线性回归

    Andrew Ng机器学习课程笔记(一)之线性回归 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7364598.html 前言 ...

  9. Andrew Ng机器学习课程13

    Andrew Ng机器学习课程13 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 引言:主要从一般的角度介绍EM算法及其思想,并推导了EM算法的收敛性.最后 ...

随机推荐

  1. JavaEE Tutorials (26) - 批处理

    26.1批处理介绍391 26.1.1批处理作业中的步骤391 26.1.2并行处理392 26.1.3状态和判定元素392 26.1.4批处理框架功能39326.2Java EE中的批处理394 2 ...

  2. C++的四种cast操作符的区别--类型转换

    Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意? A:转换的含义是通过改变一个变量的类型为别的类型从而 ...

  3. 《windows程序设计》学习_1:初识windows程序

    #include<windows.h> int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szC ...

  4. poj2488 A Knight's Journey

      A Knight's Journey Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 24840   Accepted:  ...

  5. Qt之再谈窗体阴影

    前面就窗口阴影已经写过一篇博客,使用九宫格的思路实现的,在我看来,凡是用程序能实现的尽量不要使用图片代替(在保证效率的前提下),今天再次分享关于我的一些小见解!     先看效果:       窗口阴 ...

  6. poj 3255 求次大最短路

    Roadblocks Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 5508   Accepted: 2088 Descri ...

  7. ecside使用笔记(1)

    1. 部分属性描写叙述: 属性: tableId 描写叙述:  设置列表的唯一标识,默觉得"ec",当一个页面内有多个ECSIDE列表时,必须为每一个列表指定不同的 tableId ...

  8. 【枚举+贪心】【TOJ3981】【ICPC Balloons】

    给你N种不同颜色气球,每种气球有个数目 count[i],给的同种颜色气球可能是L尺寸,或M尺寸. M个问题,每个问题有个解决人数ac[i]. 每个问题 要分配一种颜色的气球,尺寸要一样 现在 这些气 ...

  9. Erp第二章:业务流程化、集成、规划

    1从全流程着眼,支持业务流程化优化,通过流程化优化提高工作效率和企业效益 2每个系统业务都相互依存.相互作用. 3.应用 程序(不用厂家)越多,信息集成难度越大 4信息集成.实时共享.实时企业 5信息 ...

  10. Asp.Net长文件名下载的问题和解决办法

    在Asp.Net中写了一个附件上传和下载的程序,附件上传到数据库中,然后将附件的GUID保存起来,我们可以根据GUID来找到数据库中的附件,一般附件下载的代码是: <!--<br /> ...