数据库中的数据由于各种原因常常会包含一些异常记录,对这些异常记录的检测和解释有很重要的意义。异常检测目前在入侵检测、工业损毁检测、金融欺诈、股票分析、医疗处理等领域都有着比较好的实际应用效果。异常检测的实质是寻找观测值和参照值之间有意义的偏差。离群点检测是异常检测中最常用的方法之一,是为了检测出那些与正常数据行为或特征属性差别较大的异常数据或行为

离群点的概念

离群点(Outlier)是指显著偏离一般水平的观测对象。离群点检测(或称异常检测)是找出不同于预期对象行为的过程。离群点的本质仍然是数据对象,但它与其他对象又显著差异,又被称为异常值

在上图中,大部分数据对象大致符合同一种数据产生机制,而区域R中的对象分布明显不同,不太可能与大部分数据对象符合同一种分布,因此在该数据集中,R中的对象是离群点

离群点不同于噪声数据。噪声是指被观测数据的随机误差或方差,观测值是真实数据与噪声的混合。而离群点属于观测值,既可能是真实数据产生,也有可能由噪声带来,许多数据分析和数据挖掘任务在离群点检测之前都要删除噪声

离群点的产生主要有以下原因

1. 第一类离群值是总体固有变异性的极端表现,这类离群值与样本中其余观测值属于同一总体

2. 第二类离群值是由于试验条件和试验方法的偶然偏离所产生的结果,或产生于观测、记录、计算中的失误,这类离群值与样本中其余观测值不属于同一总体

因此 在检测离群点时,要找到离群点产生的原因,通常的做法是在正常数据上进行各种假设,然后证明检测到的离群点明显违反了这些假设

离群点的类型

1. 全局离群点

当一个数据对象明显地偏离了数据集中绝大多数对象时,该数据对象就是全局离群点(Global Outlier)。全局离群点有时也称为点异常,是最简单的一类离群点。如图10-1中区域R中的点,它们显著偏离数据集的绝大多数的数据对象,因此属于全局离群点

2. 条件离群点

与全局离群点不同,当且仅当在某种特定情境下,一个数据对象显著地偏离数据集中的其他对象时,该数据对象被称为条件离群点(Contextual Outlier)

条件离群点依赖于选定的情景,又称为情景离群点,在检测条件离群点时,条件必须作为问题定义的一部分加以说明,一般地,在情境离群点检测中所考虑对象的属性划分为条件属性和行为属性

条件属性是指数据对象的定义中定义情境的属性

行为属性指数据对象中定义对象特征的属性

3. 集体离群点

当数据集中的一些数据对象显著地偏离整个数据集时,该集合形成集体离群点(Collection Outlier)集体离群点中的个体数据对象可能不是离群点,如下图所示,黑色对象形成的集合密度远大于数据集中的其他对象,因此是一个集体离群点,但是每个黑色的数据对象个体对于整个数据集而言不属于离群点

不同于全局或条件离群点,在集体离群点检测中,除了考虑个体对象的行为,还要考虑集体的行为

离群点检测的挑战

1. 正常对象和离群点的有效建模

离群点的检测质量依赖于正常数据对象和离群点的建模,通常 为数据的正常行为构建一个综合模型是有难度的

2. 针对应用的离群点检测

不用应用可能有不同的要求

3. 在离群点检测中处理噪声

离群点不同于噪声,噪声可能带来属性的偏差,甚至以缺失值的形式出现,低质量的数据和噪声数据给离群点检测带来了巨大的挑战,噪声会掩盖离群点,降低离群点检测的有效性,即离群点看上去像伪装的噪声点,而离群点检测方法可能错误的把噪声识别为离群点

4. 可理解性

在离群点检测中 不仅要正确检测离群点,还要解释检测结果的合理性,为了满足用户要求,离群点检测方法必须要提供某种检测理由

创作不易 觉得有帮助请点赞关注收藏~~~