异常检测的目标是发现与大部分其他对象不同的对象。通常,异常对象被称作离群点,因为在数据的散布图中,它们远离其他数据点。异常检测也称偏差检测,因为异常对象的属性值明显偏离期望的或常见的属性值。
- 欺诈检测。盗窃信用卡的人的购买行为可能不同于信用卡持有者。信用卡公司试图通过寻找窃贼的购买模式,或通过注意不同于常见行为的变化来检测窃贼。类似的方法可以用于其他类型的欺诈检测。
- 入侵检测。对计算机系统的攻击已是常事,某些攻击时显而易见的,如旨在瘫痪或控制计算机和网络的攻击,但是其他攻击,如旨在秘密收集信息的攻击则很难检测。许多入侵只能通过监视系统和网络的异常行为来检测。
- 生态系统失调。在自然界,存在一些非常罕见的事件,对人类具有重大影响,包括飓风、洪水、干旱、火灾等。目标通常时预测这些事件的似然度和它们的成因。
一、前言
1. 1 异常的成因
常见的异常成因:数据来源不同的类,自然变异,以及数据测量或收集误差。
数据来源不同的类:某个数据对象可能不同于其他数据对象,因为它属于一个不同的类型或者类。例如,进行信用卡欺诈的人属于不同的信用卡用户类,不同于合法使用信用卡的那些人。
自然变异:许多数据集可以用一个统计分布建模,如正态分布建模,其中数据对象的概率随对象到分布中心距离的增加而急剧减小。换言之,大部分数据对象靠近中心,数据对象显著地不同于这个平均对象的似然性很小。
数据测量和收集误差:由于人的失误、测量设备的问题或存在噪声,测量值可能被不正确的记录。
1.2 异常检测方法
- 基于模型的技术。许多异常检测技术首先建立一个数据模型。异常是那些同模型不能完美拟合的对象。在使用回归模型时,异常是相对远离预测值的对象。由于异常和正常对象可以看作定义两个不同的类,因此可以使用分类技术来建立这两个类的模型(仅当某些对象存在类标号,使得我们可以构造训练数据集时才可以使用分类技术,此外,异常相对稀少,在选择分类技术和评估度量时需要考虑这一因素)。
- 基于邻近度的技术。通常可以在对象之间定义邻近性度量,并且许多异常检测方法都基于邻近度。异常对象是那些远离大部分其他对象的对象。这一领域的许多技术都是基于距离,称作基于距离的离群点检测技术。
- 基于密度的技术。对象的密度估计可以相对直接计算,特别是当对象之间存在邻近性度量时,低密度区域中的对象相对原理近邻,可能被看作异常。
1.3 类标号的使用
异常检测有三种基本方法:监督的、非监督的和半监督的。它们的主要区别至少对于某些数据而言是类标号(异常或正常)可以利用的程度。
监督的异常检测。监督的异常检测技术要求存在异常类和正常类的训练集。
非监督的异常检测。在许多实际情况下,没有提供类标号。在这种情况下,目标是将一个得分(或标号)赋予每个实例,反映该实例是异常的程度。注意许多互相相似的异常的出现可能导致它们都被标记为正常,或具有较低的离群点得分。这样,对于成功的非监督的异常检测,异常必须相互不同,与正常对象也不同。
半监督的异常检测。有时,训练数据包含被标记的正常数据,但是没有关于异常对象的信息。在半监督的情况下,目标是使用有标记的正常对象的信息,对于给定的对象集合,发现异常标号或得分。在这种情况下,被评分对象集中许多的离群点的出现并不影响离群点的评估。然而,在许多实际情况下,可能很难发现代表正常对象的小集合。
1.4 异常检测问题
在处理异常时,存在各种需要处理的重要问题。
用于定义异常的属性个数。一个对象是不是基于单个属性的异常问题,也就是对象的那个属性值是否异常的问题。然而,由于对象可以有许多属性,它可能在某些属性上具有异常值,而在其他属性上具有正常值。此外,即使一个对象的所有属性值都不是异常的,对象也可能是异常的。例如身高0.6米或者250斤的人很常见,但是体重250斤的人身高0.6米是罕见的。
全局观点与局部观点。一个对象可能相对于所有对象看上去不寻常,但是相对于它局部近邻并非如此。例如,身高2米的人对于一般人群是不常见的,但对于职业篮球运动员是不算什么。
点异常程度。评估对象要么是异常,要么不是,通常不能反映某些对象比其他对象更加极端异常的基本事实。因此,需要有某些对象异常程度的评估,这种评估称作异常或离群点得分。
评估。如果可以使用类标号来识别异常和正常数据,由于异常类通常比正常类小得多,因此诸如精度、召回率等度量比正确率更合适。如果不能使用类标号,则评估是困难的,对于基于模型的方法,离群点检测的有效性可以通过删除异常后对模型的改进来评估。
二、基于模型的技术
2.1 统计学方法
统计学方法是基于模型的方法,即为数据创建一个模型,并且根据对象拟合模型的情况来评估它们。大部分用于离群点检测的统计学方法都是基于构建一个概率分布模型,并考虑对象有多大可能符合该模型。
离群点的概率定义。离群点是一个对象,关于数据的概率分布模型,它具有低概率。
概率分布模型通过估计用户指定的分布的参数,由数据创建。如果假定数据具有高斯分布,则基本分布的均值和标准差可以通过计算数据的均值和标准差来估计。然后可以估计每个对象在该分布下的概率。
2.1.1 一元正态分布中的离群点
高斯分布是统计学最常用的分布之一,来自分布的对象出现在该分布尾部的机会很小。例如,对象落在3倍标准差的中心区域之外的概率仅为0.0027,离均值超过4个标准差的值出现的可能性是万分之一。
2.1.2 优缺点
离群点检测的统计学方法具有坚实的基础,建立在标准的统计学技术之上,当存在充分的数据和所用的检验类型的知识时,这些检验可能非常有效。对于单个属性,存在各种统计离群点检测。对于多元数据,可用的选择少一些,并且对于高维数据,这些检验可能性能很差。
2.2 聚类技术
聚类分析发现强相关的对象组,而异常检测发现不与对象强相关的对象。因此,聚类可以用于异常检测。
一种利用聚类检测离群点的方法是丢弃远离其他簇的小簇。通常,该过程可以简化为丢弃小于某个最小尺寸的所有簇。这种方案对簇个数的选择高度敏感。此外,使用这一方案,很难将离群点得分附加在对象上。一种更系统的方法是,首先聚类所有对象,然后评估对象属于簇的程度。对于基于原型的聚类,可以用对象到它簇中心的距离来度量对象属于簇的程度。特殊情况下,如果删除一个对象导致该目标显著改进,则可以将该对象分类到离群点。如:对于k均值,删除远离其相关簇中心的对象能够显著改进该簇的误差平方和(SSE)。
2.2.1 评估对象属于簇的程度
对于基于原型的聚类,评估对象属于簇的程度的方法有多种。一种方法是度量对象到簇原型的距离,并用它作为该对象的离群点得分。如果簇具有不同的密度,可以构造一种离群点得分,度量对象到簇原型的相对距离(关于到该簇其他对象的距离)。另一种方法是使用Mahalanobis距离,只要簇可以准确地用高斯分布建模。
基于原型的聚类使用K均值算法,而点的离群点得分用两种计算方法;(1)点到它的最近质心的距离,(2)点到它的最近质心的相对距离,其中,相对距离是点到质心的距离与簇中所有的点到质心的距离的中位数之比。基于距离的方法在处理簇的不同密度方面存在问题:例如,D点未被视为离群点。对于基于相对距离的方法,A、C、D被作为离群点出现。
如果通过聚类检测离群点,则由于离群点影响聚类,存在一个问题:结果是否有效。为了处理该问题,可以使用如下方法:对象聚类,删除离群点,对象再次聚类。尽管不能保证这种方法产生最优结果,但是该方法容易使用。
2.2.2 优缺点
有些聚类技术的时间和空间复杂度是线性或接近线性的,因而基于这种算法的离群点检测技术可能是高度有效的。缺点方面,产生的离群点集和它们的得分可能非常依赖所用的簇的个数和数据中离群点的存在性。
三、基于近邻度的离群点检测
一个对象时异常的,它远离大部分点,这种方法比统计学方法更一般、更容易使用,因为确定数据集邻近性度量比确定它的统计分布更容易。度量一个对象是否远离 大部分点的一个最简单的方法是使用K-最近邻的距离。
离群点得分对 k 的取值高度敏感。如果 k 太小,则少量的邻近离群点可能导致较低的离群点得分。左图,C和它的近邻都具有低离群点得分。如果 k 太大,则点数少于 k 的簇中所有的对象可能都成了离群点。右图,除了一个30个点的较大簇之外,数据集中还有一个5个点的自然簇,对于 k =5,较小簇中所有的点的离群点得分都很高。为了使该方案对于 k 的选取更具鲁棒性,使用前 k 个最近邻的平均距离。
四、基于密度的离群点检测
从基于密度的观点来说,离群点是在低密度区域中的对象。基于密度的离群点检测与基于邻近度的离群点检测密切相关,因为密度通常用邻近度定义,一种常用的定义密度的方法是,定义密度为到 k 个最近邻的平均距离的倒数。如果该距离小,则密度高,反之亦然。
基于相对密度的技术:局部离群点要素(LOF)技术。算法的步骤:首先,对于指定的近邻个数(k),基于对象的最近邻计算对象的密度,由此得出每个对象的离群点得分。然后,计算点的近邻平均密度,并使用相对密度(点 x的密度与它的最近邻 y 的平均密度之比),这个量指示 x 是否在比它的近邻更稠密或更稀疏的领域内,并取作 x 的离群点得分。