几种常用的异常数据挖掘方法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第24卷第4期2010年7月甘肃联合大学学报(自然科学版)

Journal of G ansu Lianhe University (Natural Sciences )Vol.24No.4

J ul.2010

收稿日期:2010205211.

作者简介:王晓燕(19802),女,江苏泗洪人,宿迁市广播电视大学讲师,硕士,主要从事数据库研究.

文章编号:16722691X (2010)0420068204

几种常用的异常数据挖掘方法

王晓燕

(江苏省宿迁广播电视大学,江苏宿迁223800)

摘 要:主要讨论了常用的异常数据挖掘方法,简要地介绍了异常数据挖掘的定义、功能、方法等,详细的介绍了使用统计、距离、偏离技术、密度和高维持数据进行异常数据挖掘的方法并分析了其各自的特点.关键词:异常数据挖掘;异常点数据;方法中图分类号:TP311.13 文献标识码:A

 引言

在数据挖掘的过程中,数据库中可能包含一些数据对象,它们与数据的一般行为或模型不一致,这些数据对象被称为异常点,对异常点的查找过程称为异常数据挖掘,它是数据挖掘技术中的一种.异常数据挖掘又称孤立点分析、异常检测、例外挖掘、小事件检测、挖掘极小类、偏差检测等.孤立点可能是“脏数据”,也可能是与实际对应的有意义的事件.从知识发现的角度看,在某些应用里,那些很少发生的事件往往比经常发生的事件更有趣、也更有研究价值,例外的检测能为我们提供比较重要的信息,使我们发现一些真实而又出乎预料的知识.因此,异常数据的检测和分析是一项重要且有意义的研究工作[1,2].

 异常数据挖掘的简介

异常数据挖掘有着广泛的应用,如欺诈检测,用异常点检测来探测不寻常的信用卡使用或者电信服务;预测市场动向;在市场分析中分析客户的极低或极高消费异常行为;或者在医疗分析中发现对多种治疗方式的不寻常的反应等等.通过对这些数据进行研究,发现不正常的行为和模式,有着非常重要的意义.

对异常点数据的挖掘可以描述如下:给定一个n 个数据点或对象的集合,以及预期的异常点的数目k ,目标是:发现与剩余的数据相比是显著相异的、异常的或者不一致的头k 个对象.异常点数据挖掘的任务可以分成两个子问题:

(1)给出已知数据集的异常点数据的定义;

(2)使用有效的方法挖掘异常点数据.对数

据模式的不同定义,以及数据集的构成不同,会导致不同类型的异常点数据挖掘,实际应用中根据具体情况选择异常数据的挖掘方法.

 常用的异常数据挖掘方法及其特点

 基于统计的方法

利用统计学方法处理异常数据挖掘的问题已经有很长的历史了,并有一套完整的理论和方法.统计学的方法对给定的数据集合假设了一个分布或者概率模型(例如正态分布),然后根据模型采用不一致性检验来确定异常点数据.不一致性检验要求事先知道数据集模型参数(如正态分布),分布参数(如均值、标准差等)和预期的异常点数目.

“不一致性检验是如何进行的?”一个统计学的不一致性检验检查两个假设:一个工作假设(working hypot hesis )即零假设以及一个替代假设(alternative hypot hesis )即对立假设.工作假设是描述总体性质的一种想法,它认为数据由同一分布模型即H :O i ∈F ,i =1,2,…n;不一致性检验验证O i 与分布F 的数据相比是否显著地大(或者小).如果没有统计上的显著证据支持拒绝这个假设,它就被保留.根据可用的关于数据的知识,不同的统计量被提出来用作不一致性检验.假设某个统计量T 被选择用于不一致性检验,对象O i 的该统计量的值为V i ,则构建分布T ,估算显著性概率S P (V i )=Prob (T >V i ).如果某个S P (V i )足够的小,那么检验结果不是统计显著的,则O i 是不一致的,拒绝工作假设,反之,不能拒绝假设.

对立假设是描述总体性质的另外一种想法,认为数据O i来自另一个分布模型G.对立假设在决定检验能力(即当O i真的是异常点时工作假设被拒绝的概率)上是非常重要的,它决定了检验的准确性等.

目前利用统计学研究异常点数据有了一些新的方法,如通过分析统计数据的散度情况,即数据变异指标,来对数据的总体特征有更进一步的了解,对数据的分布情况有所了解,进而通过数据变异指标来发现数据中的异常点数据.常用的数据变异指标有极差、四分位数间距、均差、标准差、变异系数等等,变异指标的值大表示变异大、散布广;值小表示离差小,较密集.

“用统计学的方法检测异常点数据的有效性如何呢?”一个主要的缺点是绝大多数检验是针对单个属性的,而许多数据挖掘问题要求在多维空间中发现异常点数据.而且,统计学方法要求关于数据集合参数的知识,例如数据分布.但是在许多情况下,数据分布可能是未知的.当没有特定的分布检验时,统计学方法不能确保所有的异常点数据被发现,或者观察到的分布不能恰当地被任何标准的分布来模拟.

 基于距离的方法

为了解决统计学带来的一些限制,引入了基于距离的异常点检测的概念.

“什么是基于距离的异常点检测?”如果数据集合S中独享至少有p部分与对象o的距离大于d,则对象o是一个带参数的p和d的基于距离的(DB)的异常点,即DB(p,d)[3].换句话说,不依赖于统计检验,我们可以将基于距离的异常点看作是那些没有“足够多”邻居的对象,这里的对象是基于距给定对象的距离来定义的.与基于统计的方法相比,基于距离的异常点检测拓广了多个标准分布的不一致性检验的思想.基于距离的异常点检测避免了过多的计算.

目前比较成熟的基于距离的异常数据挖掘的算法有:

基于索引的算法(Index-based):给定一个数据集合,基于索引的算法采用多维索引结构R -树,k-d树等,来查找每个对象在半径d范围内的邻居.假设M为异常点数据的d-领域内的最大对象数目.如果对象o的M+1个邻居被发现,则对象o就不是异常点.这个算法在最坏情况下的复杂度为O(k3n2),k为维数,n为数据集合中对象的数目.当k增加时,基于索引的算法具有良好的扩展性.

嵌套-循环算法(Nested-loop):嵌套-循环算法和基于索引的算法有相同的计算复杂度,但是它避免了索引结构的构建,试图最小化I/O 的次数.它把内存的缓冲空间分为两半,把数据集合分为若干个逻辑块.通过精心选择逻辑块装入每个缓冲区域的顺序,I/O效率能够改善.

基于单元的算法(cell-based):在该方法中,数据空间被划为边长等于d/(23k1/2)的单元.每个单元有两个层围绕着它.第一层的厚度是一个单元,而第二层的厚度是[23k1/2-1].该算法逐个单元地对异常点计数,而不是逐个对象地进行计数.对于一个给定的单元,它累计三个计数———单元中对象的数目(cell_count),单元和第一层中对象的数目(cell_+_1_cell_count),单元和两个层次中的对象的数目(cell_+ _2_cell_count).该算法将对数据集的每一个元素进行异常点数据的检测改为对每一个单元进行异常点数据的检测,它提高了算法的效率.它的算法复杂度是O(c k+n),这里的c是依赖于单元数目的常数,k是维数.它是这样进行异常检测的:若cell_+_1_cell_count>M,单元中的所有对象都不是异常;若cell_+_2_cell_count<=M,单元中的所有对象都是异常;否则,单元中的数据某一些可能是异常.为了检测这些异常点,需要逐个对象加入处理.

基于距离的异常数据挖掘方法要求用户设置参数p和d,而寻找这些参数的合适设置可能涉及多次试探和错误[4].

 基于偏差的方法

基于偏差的异常数据挖掘方法不采用统计检验或者基于距离的度量值来确定异常对象,它是模仿人类的思维方式,通过观察一个连续序列后,迅速地发现其中某些数据与其它数据明显的不同来确定异常点对象,即使不清楚数据的规则.基于偏差的异常点检测常用两种技术:序列异常技术和OL A P数据立方体技术.我们简单介绍序列异常的异常点检测技术.

序列异常技术模仿了人类从一系列推测类似的对象中识别异常对象的方式.它利用隐含的数据冗余.给定n个对象的集合S,它建立一个子集合的序列,{S1,S2,….,S m},这里2≤m≤n,由此,求出子集间的偏离程度,即“相异度”.该算法

96

第4期王晓燕:几种常用的异常数据挖掘方法

相关文档
最新文档