第二章 异常检测的概率和统计模型

1.为什么要讲概率和统计模型?

之所以一开始就讲概率和统计模型,是因为最早的异常检测方法时根植于概率和统计模型的。

这些方法是在计算机技术出现和普及之前就提出的,因此设计时不太注重数据表示或计算效率等实际问题。 然而,基本的数学模型是非常有用的,并最终适应了各种计算场景。

2.单变量极值

单变量极值分析是异常检测中非常流行的一种方法。

这种方法是确定单变量分布尾部的数据值,因为这些值往往是异常的。

单变量极值也经常用在其他算法的最后一步,因为这些算法的结果通常都是异常分数,这些分数中的极值往往是异常值。

如:

在概率建模中,数据点与生成模型的似然拟合是离群点分数。 
在基于邻近的建模中,k近邻距离、距离最近的簇质心或局部密度值是离群点分数。
在线性建模中,数据点到数据的低维表示的剩余距离是离群点分数
在时间建模中,数据点与其预测值的偏差被用来创建离群点分数

3.单元极值和多元极值

单元极值:数据是由一个特征决定的。

多元极值:数据是由多个特征决定的。

4.多元极值

图2.1

在上图中,B点是多元极值。A是异常点,但不是多元极值。

如果用多元极值方法去检测上图中的异常点,B可以被检测到,但是A无法被检测到。

4.使用概率建模寻找极值中的异常

对于图2.1,可以将数据集建模为【三个高斯分量的混合模型】,即可发现异常值A和B。

大多数概率模型假设每个混合分量(例如高斯)的底层分布的特定形式来建模数据点的正常模式。随后,学习了该模型的参数,使观测到的数据有最大的可能性被模型生成。

因此,该模型是数据的生成模型,可以从该模型中估计生成特定数据点的概率。

由模型生成的概率异常低的数据点被识别为异常值。

混合模型是多元极值分析的自然推广;例如,如果我们将混合物建模为包含单个高斯分量,则该方法专门研究最著名的多元极值分析方法之一(见2.3.4节中的Mahalanobis方法)。

接下来将介绍单变量数据分布中极值分析的概率和统计方法、多变量数据分布中极值分析的概率和统计方法、异常值分析的概率混合建模。

5.单变量数据分布中极值分析的概率和统计方法

首先介绍的是什么叫分布尾分布尾是指概率分布中的极值

极值分析的统计方法量化了分布尾的概率。

显然,尾部的极低概率值表明其内部的数据值应该被认为是异常的。

在许多数据的实际分布不可用的情况下,使用使用尾部不等式来绑定这些数据的概率。

5.1 概率尾部不等式

尾部不等式的作用:可以使用尾部不等式来约束概率分布尾部的值应被视为异常的概率。 

 尾部不等式划分的依据:尾部不等式的强度取决于对潜在随机变量所作假设的数量。 较少的假设导致较弱的不等式,但这种不等式适用于较大类别的随机变量。

弱不等式:

例如,Markov和Chebychev不等式是弱不等式,但它们适用于非常大类的随机变量。

马尔可夫不等式:马尔可夫不等式是指一个非负随机变量如果均值很小时,则该随机变量取大值的概率也非常小。

切比雪夫不等式:切比雪夫不等式是指如果要给随机变量的方差非常小的化,那么该随机变量取远离均值的概率也非常小。

强不等式:

例如,Chernoff bound和Hoeff ding不等式都是更强的不等式,但它们适用于受限类别的随机变量。

马尔可夫不等式和切比雪夫不等式是相对较弱的不等式,往往没有提供足够紧的边界,在许多实际场景中是有用的。 这是因为这些不等式没有对随机变量X的性质作出任何假设。 然而,当对随机变量使用更强的假设时,可以捕获许多实际的场景。 在这种情况下,对尾部分布的更严格的限制是可能的。 【一个特定的情况是一个随机变量X可以表示为其他独立有界随机变量的和】。

5.1.1 有界随机变量之和

许多实际观测,以集合的形式定义,可以表示为有界随机变量的和。 这种情况的一些例子如下:

 制造质量控制:一家公司使用制造装配线生产一种产品,它可能有故障,其预定义(低)概率p。质量控制过程从装配线上抽取N个产品,并对其进行仔细检查,以统计有缺陷的产品数量。 对于给定的故障产品计数,评估装配线异常行为的概率。然后将该故障概率和预定义的故障概率进行比较。

关于这种情况,主要有切尔诺夫Chernoff不等式和Hoeffding不等式。

切尔诺夫限,也叫做切尔诺夫不等式,是关于一组独立随机变量和的一类概率不等式。切尔诺夫不等式要求变量时独立分布的,而相似的马尔可夫不等式和切比雪夫不等式则不需要随机变量时独立的。

以下是各种不等式用于确定尾部概率的不同方法的比较的适用场景:

切比雪夫不等式:适用于任何随机变量

马尔可夫不等式:适用于非负随机变量

霍夫丁不等式:适用于有界独立的随机变量之和

切尔诺夫不等式:适用于独立同分布伯努利随机变量之和(独立同分布:在概率统计理论中,如果变量序列或者其他随机变量有相同的概率分布,并且互相独立,那么这些随机变量是独立同分布。)

中心极限定理:很多独立同分布变量之和。

5.2 统计尾部置信度测试

正态分布(高斯分布)有许多应用,如统计尾置信度测试。

在统计尾置信度测试中,根据正态分布分布的一组数据值的极值被识别出来。

正态分布的假设在实域中相当普遍。 这不仅适用于以随机样本和表示的变量(如上一节所讨论的),而且也适用于由不同随机过程生成的许多变量。

正态分布公式:均值μ、标准差σ

观测值xi的Z值zi计算:zi = (xi μ)

事实上,Z值对应于一个缩放和平移的正态随机变量,也称为均值为0和方差为1的标准正态分布。因此,可以直接使用累积标准正态分布,以确定在该zi值处的尾部概率的精确值。 从实际的角度来看,由于这种分布不是封闭的,所以使用正态分布表来将zi的不同值映射到概率。 这提供了一个统计意义级别,它可以直接解释为数据点是离群点的概率。 基本假设是数据是由正态分布生成的。

5.2.1 t 值检验

问题引出:

在有大量数据的数据集中可以准确地估计均值μ和标准差σ,但是在小数据集合中很难准确估计均值和标准差

解决方法:

学生的t分布提供了一种有效的方法来模拟这种场景中的异常。 这个分布由一个称为自由度ν的参数定义,该参数由可用的样本大小密切定义。 t分布近似对于较大的自由度(>1000),正态分布非常好,并且在它到达∞的极限中收敛到正态分布。

对于较少的自由度(或样本大小),t分布具有与正态分布相似的钟形曲线,但它有较重的尾部。 这是相当直观的,因为较重的尾部解释了统计意义上的损失,因为无法准确估计来自较少样本的建模(正态)分布的均值和标准差。

t 值检验:t-分布(t-distribution)用于根据小样本来估计呈正态分布且方差未知的总体的均值。如果总体方差已知(例如在样本数量足够多时),则应该用正态分布来估计总体均值。

用少量样本x1...xN进行极值检测的过程:

首先,估计样本的均值和标准差。

然后,这将用于直接从样本中计算每个数据点的t值( t值的计算方式与Z值相同z = (x  μ))。

t分布:

5.2.2 离差平方和

为什么需要离差平方和:孤立点检测的一个常见情况是需要将沿独立标准的偏差统一为单个离群点评分。 这些偏差中的每一个偏差通常被建模为来自独立和相同分布的标准正态分布的Z值。 然后将总偏差度量计算为这些值的平方和

离差平方和的概念:离差平方和的概念是各项与平均项之差的平方的总和。定义是设x是一个随机变量,令η=x-Ex, 则 称 η为x的离差,它反映了x与其数学期望Ex的偏离程度。

5.2.3 用箱形图可视化极值

通过箱形图,在分析数据的时候,盒图能够有效地帮助我们识别数据的特征:直观地识别数据集中的异常值(查看离群点)。判断数据集的数据离散程度和偏向(观察盒子的长度,上下隔间的形状,以及胡须的长度)。
箱线图是一个能够通过5个数字来描述数据的分布的标准方式,这5个数字包括:最小值,第一分位,中位数,第三分位数,最大值,箱线图能够明确的展示离群点的信息,同时能够让我们了解数据是否对称,数据如何分组、数据的峰度

6.多变量数据分布中极值分析的概率和统计方法

极值分析也可以多种方式应用于多元数据。 其中一些定义试图显式地对底层分布进行建模,而另一些定义则基于更一般的统计分析,而这些分析不假定底层数据的任何特定统计分布。

在本节中,我们将讨论四种不同的方法,这些方法旨在在多元数据的边界上找到数据点

这些方法中的第一类(基于深度)不是统计或概率方法。 相反,它是基于凸壳分析的点几何。 然而,我们已经将它包含在本章中,因为它自然地与其他多元极值方法在它发现的异常值类型方面相匹配。

虽然本节讨论的方法对于在数据空间的外部边界找到异常值是有效的,但它们不擅长在数据空间的内部区域内找到异常值。

图2.1

这些方法可以有效地找到图2.7所示情况的异常值,但不能找到图2.1所示的异常值A。

6.1 基于深度的方法

在基于深度的方法中,采用凸包分析来寻找离群点。 如上图所示,基于深度的离群点检测。若设置深度阈值k=2,那么深度小于等于2的点就全部为异常点。

其思想是,数据外部边界中的点位于凸壳的角处。 这样的点更有可能是离群点。 一种基于深度的算法以迭代的方式进行。 在第k次迭代中,数据集凸包角处的所有点都从数据集中删除。 这些点被分配到k的深度。这些步骤被重复,直到数据集是空的。 所有深度最多为r的点都被报告为异常值。 或者,数据点的深度可以直接报告为离群点分数。

基于深度的方法,即【从点空间的边缘定位异常点】,按照不同程度的需求,决定层数及异常点的个数。如下图所示,圆中密密麻麻的黑点代表一个个数据点,基于的假设是点空间中心这些分布比较集中、密度较高的点都是正常点,而【异常点都位于外层】,即分布比较稀疏的地方。

局限性
    这个基础模型仅适用于二维、三维空间。
    现在有很多流行的算法都借鉴了这种模型的思想,但通过改变计算深度的方式,已经可以实现高维空间的异常检测,如孤立森林算法。

6.2 基于偏差的方法

基本概念和方法
    基于偏差的方法测量异常值对数据方差的影响。 例如,一种方法是试图测量当移除特定数据点时,底层数据中的方差减少了多少。 由于基本假设是异常值位于数据的边界,因此预计去除这些数据点将显著减少方差。 这本质上是一种信息论方法,因为它检查了当数据点被移除时复杂性的降低。

白话理解
    具体的实现方法是,定义一个指标 平滑因子SF(Smooth Factor),这个指标的含义就是当把某个点从集合剔除后方差所降低的差值,我们通过设定一个阈值,与这些偏差值进行比较来确定哪些点存在异常。
    这是一种比较简单的统计方法,最初是为单维异常检测设计的。给定一个数据集后,对每个点进行检测,如果一个点自身的值与整个集合的指标存在过大的偏差,则该点为异常点。

6.3 基于角度的方法

基本思想
    基于角度的方法的思想是,数据边界上的数据点很可能将整个数据包围在一个较小的角度内,而内部的点很可能在不同的角度上围绕它们有数据点。
白话理解
    数据点距离其余的点越远,角度越小,越可能是异常点。

例如,考虑图2.6中的两个数据点‘A’和‘B’,其中点‘A’是一个离群点,点‘B’位于数据的内部。 很明显,所有数据点都位于以“A”为中心的有限角度内。另一方面,数据点“B”的情况并非如此,它位于数据的内部。 在这种情况下,不同对点之间的角度可以变化很大。 
事实上,一个数据点离其余点越孤立,其潜在角度就可能越小。因此,角度谱较小的数据点是离群值,而角度谱较大的数据点不是离群值

6.4 基于距离分布的技术:马氏距离

分布相关的方法是以多元高斯分布的形式将整个数据集建模为正态分布的均值。

d维(行向量)数据点X的高斯正太分布概率函数f(X):

马哈拉诺比斯Mahalanobis距离:

马哈拉诺比斯Mahalanobis距离表示点与一个分布之间的距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是,它考虑到各种特性之间的联系(例如:一条关于身高的信息会带来一条关于体重的信息,因为两者是有关联的),并且是尺度无关的(scale-invariant),即独立于测量尺度。

一个点的Mahalanobis距离与它与数据质心的欧氏距离相似,只是它根据属性间相关性对数据进行归一化。

Mahalanobis方法的优点:

1.它的大部分力量在于它的【属性间相关性】的使用。 协方差矩阵的使用确保在异常值检测过程中考虑属性间依赖关系。

2. Mahalanobis方法是无参数的。 这在像离群点检测这样的无监督问题中很重要,在这些问题中,没有有意义的方法通过在数据集上测试其性能来设置参数。 这是因为ground-truth无法用于参数调优。

3.Mahalanobis方法在数据点的数量上是线性的,Mahalanobis方法在大多数实际环境中的计算时间方面具有显著的优势。

7.异常值分析中的概率混合建模

对于数据可能具有不同方向的许多不同集群的情况,上面这些极值分析方法可能不有效。

上图举例说明了这样一个数据集。 对于这种情况,需要更通用的基于分布的建模算法。

概率混合建模的基本思想
    这种推广的关键思想是使用数据点的概率混合建模。 
    这种模型通常是生成模型,对于每个数据点,我们可以估计模型的生成概率(或拟合概率)。  
        首先,我们假设生成模型的一种特定形式(例如,高斯混合),
         然后使用期望最大化(EM)算法估计该模型的参数。 参数进行估计,使观测数据具有最大似然拟合生成模型。
        给定这个模型,我们然后估计潜在数据点的生成概率(或拟合概率)。 拟合分布的数据点具有较高的拟合概率,而异常则具有很低的拟合概率。
    图2.8举例说明了不同类型的数据点如何与这种模型中的拟合概率相关。
        将拟合概率与异常行为联系起来

8.概率建模的局限性

概率建模的局限性
    参数方法很容易受到底层数据中的噪声和过度拟合的影响。 混合模型总是假设数据的特定分布,然后尝试学习这种分布的参数。 在这种分布的通用性和需要学习的参数数量之间存在着一种自然的权衡。 如果不仔细校准这种权衡,则可能出现以下两种情况之一:
        当模型的特定假设不准确(例如,不适当地使用高斯分布)时,数据不太可能很好地拟合模型。 因此,许多虚假数据点可能被报告为异常值。
        当模型过于笼统时,描述模型的参数数量增加。 事实上,将分数转换为概率的前一节中的技术利用了一个事实,即单变量离群分数通常在高斯分布中聚集在一起。 不幸的是,没有办法将这种方法简单地推广到多维数据集。 因此,当将低拟合点报告为离群点(而不是一个特殊建模的离群点类)时,由于小群离群点引起的过度拟合,总是有可能错过真正的离群点。 减少过拟合的一种可能性是将先验概率固定在1/k,尽管这种假设有时可能导致不拟合。

9.结论和总结

本章介绍了一些用于离群点分析的基本概率和统计方法。 这些技术对于置信度测试极值分析非常有用。 还介绍了一些用于极值分析的尾部不等式。 这些方法也可以推广到多元场景。 极值分析作为将分数从许多离群点分析算法转换为二进制标签的最后一步具有巨大的效用。 在许多具体的应用中,这种技术甚至对于一般的离群点分析也是非常有用的。 异常值概率混合建模EM方法可以看作是Mahalanobis方法的推广。 这种技术也可以看作是通常用于离群点检测的聚类方法之一。

读书笔记《Outlier Analysis》 第二章 异常检测的概率和统计模型相关推荐

  1. mysql数据库权威指南_MySQL_MySQL权威指南读书笔记(三),第二章:MYSQL数据库里面的数 - phpStudy...

    MySQL权威指南读书笔记(三) 第二章:MYSQL数据库里面的数据 用想用好MYSQL,就必须透彻理解MYSQL是如何看待和处理数据的.本章主要讨论了两个问题:一是SQL所能处理的数据值的类型:二是 ...

  2. C语言基础教程读书笔记2(第二章常量、变量、类型转换)

    第二章常量.变量.类型转换<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" ...

  3. 黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第五章 WEB黑客(4)暴力破解HTML表单身份验证

    黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第五章 WEB黑客(4)暴力破解HTML表单身份验证 文章目录 黑帽python第二版(Black Ha ...

  4. 黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第十一章 攻击性取证

    黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第十一章 攻击性取证 文章目录 黑帽python第二版(Black Hat Python 2nd Edi ...

  5. 黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第四章 使用SCAPY掌控网络(2)Scapy实现ARP缓存投毒

    黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第四章 使用SCAPY掌控网络(2)Scapy实现ARP缓存投毒 文章目录 黑帽python第二版(Bl ...

  6. 黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第五章 WEB黑客(3)暴力破解目录与文件位置

    黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第五章 WEB黑客(3)暴力破解目录与文件位置 文章目录 黑帽python第二版(Black Hat P ...

  7. 黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第三章 网络工程-原始套接字与嗅探(1)主机发现工具与包嗅探

    黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第三章 网络工程-原始套接字与嗅探(1)主机发现工具 文章目录 黑帽python第二版(Black Ha ...

  8. Think in Java第四版 读书笔记10 第16章 数组

    Think in Java第四版 读书笔记10 第16章 数组 数组和容器很像 但他们有一些差别 16.1 数组为什么特殊 数组与容器的区别主要在效率和存储类型 效率:数组是简单的线性序列 使得数组的 ...

  9. 《Android开发艺术探索》读书笔记 (3) 第3章 View的事件体系

    本节和<Android群英传>中的第五章Scroll分析有关系,建议先阅读该章的总结 第3章 View的事件体系 3.1 View基本知识 (1)view的层次结构:ViewGroup也是 ...

最新文章

  1. 将用户添加至sudoers列表
  2. java mqtt客户端_基于 t-io 实现一个 mqtt5 协议之 mica-mqtt
  3. [开源]jquery.ellipsis根据宽度(不是字数)进行内容截断,支持多行内容
  4. 配置phoenix连接hbase_Phoenix视图映射
  5. 改变numpy的大小_Numpy入门详细教程
  6. 机器学习中的数学(四)--线性代数
  7. Hibernate和MyBatis的缓存机制和比较
  8. 一加10 Pro胖达白512GB至尊版发布 售价5799元
  9. 根深才能叶茂:基础软件突破亟待产业界携手创新完善生态
  10. sftp 安全文件传输
  11. python 字符串的(乘法和in)(一分钟读懂)
  12. getLong not implemented for class oracle.jdbc.driver.T4CRowidAccessor
  13. js经典试题之数组与函数
  14. Https如何做到通信安全
  15. ajax响应速度慢,jQuery Ajax请求的响应速度变化
  16. ExtraMAME(mame模拟器)官方正式版V21.0下载 | ExtraMAME模拟器
  17. 阿里 + 京东 Java 岗面试题概要(面试须知
  18. 笔记............................
  19. Shaders for Game Programmers and Artists(7) - Non-photorealistic rendering
  20. mysql uid怎么获取_新浪微博API如何获取uid,并根据uid获取用户的基本信息

热门文章

  1. c# oracle 数据库连接,C#中oracle数据库的连接方法
  2. 计算机毕业设计SpringBoot选题推荐 学生档案管理系统 高校档案管理系统
  3. 用Python帮你随机选择双色球号码
  4. C#实现自动下载yunfile文件
  5. 我win7的快捷方式图标显示不正常的解决方法
  6. Java实现第八届蓝桥杯兴趣小组
  7. VirtualApp中静默安装App
  8. 一分钱不用花,一分钟搭建一个微官网
  9. 2022年茶艺师(中级)上岗证题库及答案
  10. 讯连科技威力导演20中文版