一种基于距离的高准确率全局离群点检测算法

文档序号:6638002阅读:1974来源:国知局
一种基于距离的高准确率全局离群点检测算法
【专利摘要】本发明公开一种基于距离的高准确率全局离群点检测算法,将全局数据集以分块方式进行检测,被检测的每一块数据称为一个数据块;计算所读取数据块中每个对象p与全局数据集内每个对象的距离,同时计算对象p的离群度和隐式离群度,如果该对象的隐式离群度小于阀值,则从数据块中剔除而不再继续计算其与全局数据集剩余对象的距离;可以在保留基于距离的通用性的前提下,降低离群点的影响,提高检测准确度。
【专利说明】一种基于距离的高准确率全局离群点检测算法

【技术领域】
[0001] 本发明属于数据挖掘领域,尤其涉及一种基于距离的高准确率全局离群点检测算 法。

【背景技术】
[0002] 离群点也称异常点、异常对象,现在学术界最有影响的定义是Hawkins提出的定 义"离群点是数据集中与众不同的数据点,其表现与其它点如此不同,以至于使人怀疑这些 数据并非随机的偏差,而是由另外一种完全不同的机制所产生的"。除此之外,每一类离群 检测算法都给出相应的离群点定义。离群点检测也称为异常检测、偏差检测或离群点挖掘, 它就是按照一定的算法把数据集中的离群点检测出来,例如检测出TOP-n离群点,或者所 有符合要求的离群点。换言之,离群点检测就是挖掘海量数据中极少数与主流数据显著不 同的点。
[0003] 基于距离的离群检测算法具有通用性。它不需要用户具有相关领域知识,也不需 要假定数据集满足任何特定概率分布模型。一般来说,基于距离的检测算法通常只需要给 出对象间的距离度量,而不需要额外信息。在当今大数据Variety(类型)挑战之下,这些 先天优势极大地提高了其研究和应用价值,成为学术界一大热门研究领域。如无特别说明, 以下仅讨论基于距离的离群点定义及检测算法。
[0004] 自1998年Knorr和Ng首先提出基于距离的离群点定义之后,学者们纷纷提出各 种各样的离群点定义及相应的检测算法。其中最为常用的定义共有三个及 C:)。
[0005] 6^二来源于Knorr和Ng提出的定义DB (p, D)-数据集T中的对象0是一个离 群点,当数据集T中至少有P部分对象与0的距离大于D。该定义等价为,意为与对象 0的距离小于R的对象不多于k个,显然这样的定义更加形象直观。及DB(p,D)都是 二元化定义,一个对象要么是离群点,要么是正常点。
[0006] 是Ramaswamy等人于2000年提出的定义。该定义以对象0与其第k近邻的 距离值作为离群度,因此能够排序得出TOP-n离群点,在一定程度上避免了二元化定义精 度较差的问题。
[0007] 以?是Angiulli等人于2002年提出的定义。该定义与较为相似,它以对 象〇与其前k近邻的距离之平均值作为离群度,在的基础上进一步提高了精确度,因 而成为离群检测算法研究上应用最广泛的定义。
[0008] 基于定义的检测算法时间复杂度往往较小,且适于分布式环境,因为多数对 象只需要本地数据即能判断是否离群点。然而该定义精度较差且无法按离群度排序。 克服了 无法排序的缺点,且在一定程度上提高了检测准确度,但其准确度仍然较不够 理想。相关论文并未作准确度方面的实验。及其等价定义较进一步提高了 准确度,当然时间复杂度也相应增加。然而学者们在基于此定义的检测算法研究上侧重于 降低时间复杂度或空间复杂度,同样未研究其准确度,事实上,该定义及相应的检测算法准 确度都不够理想。


【发明内容】

[0009] 本发明提供一种基于距离的高准确率全局离群点检测算法,可以在保留基于距离 的通用性的前提下,降低离群点的影响,提高检测准确度。
[0010] 本发明通过以下技术手段实现:
[0011] 一种基于距离的高准确率全局离群点检测算法,包含以下步骤:
[0012] S1,将全局数据集以分块方式进行检测,被检测的每一块数据称为一个数据块;
[0013] S2,计算所读取数据块中每个对象p与全局数据集内每个对象的距离,同时计算 对象P的离群度和隐式离群度,如果该对象的隐式离群度小于阀值,则从数据块中剔 除而不再继续计算其与全局数据集剩余对象的距离;
[0014] S3,根据S2计算的数据块情况维护TOP η 离群点队列,更新阀值;
[0015] S4,根据S2计算的数据块情况和S3更新的阀值维护隐式离群点候选集;
[0016] S5,当所有数据块都按照S2-S4步骤计算完后,从候选集剔除最大离群点并 加入TOP η隐式离群点;如果候选集中对象的近邻含有当前最后一个隐式离群点,则删除 该近邻;
[0017] S6,以离群度从候选集中计算新的最大离群点,并将其加入TOP η隐式离群 点,同时从候选集中剔除;如果隐式离群点数量小于η,则重复S5、S6,否则输出TOP η隐式 离群点。
[0018] 其中,所述的隐式离群点为按照定义,每检测出一个离群点,执行(Τ0Ρ-1), 剔除后再继续检测下一个离群点,直到检测出所有离群点。
[0019] 本发明的优点主要体现在离群点检测准确率方面,具体包括以
[0020] 下三方面:
[0021] (1)若离群点是有序的,则检测出的离群点顺序较好。
[0022] (2)给定η值,即检测相同数量的TOP η离群点,其中检测出的真实离群点数量较 多。
[0023] (3)给定拟检测出的真实离群点数量s,所需检测的TOP η离群点数量较传统的基 于距离的离群点检测算法小。

【专利附图】

【附图说明】
[0024] 图1为简单的二维对象数据集示意图。

【具体实施方式】
[0025] 以下将结合附图对本发明具体的实施过程进行详细描述。
[0026] -种基于距离的高准确率全局离群点检测算法,按以下步骤实现:
[0027] S1,将全局数据集以分块方式进行检测,每检测的一块数据称为一个数据块;
[0028] S2,计算所读取数据块中每个对象p与全局数据集每个对象的距离,同时计算对 象P的离群度和隐式离群度,一旦发现该对象的隐式离群度小于阀值,则从数据块中 剔除而不再继续计算其与全局数据集剩余对象的距离;
[0029] S3,根据S2计算的数据块情况维护TOP n 离群点队列,更新阀值;
[0030] S4,根据S2计算的数据块情况和S3更新的阀值维护隐式离群点候选集;
[0031] S5,当所有数据块都按照S2-S4步骤计算完后,从候选集剔除最大离群点并 加入TOP η隐式离群点;如果候选集中对象的近邻含有当前最后一个隐式离群点,则删除 该近邻;
[0032] S6,以离群度从候选集中计算新的最大离群点,并将其加入TOP η隐式离群 点,同时从候选集中剔除;如果隐式离群点数量小于η,则重复S5、S6,否则输出TOP η隐式 离群点。
[0033] 其中,所述的隐式离群点为按照定义,每检测出一个离群点,执行(Τ0Ρ-1), 剔除后再继续检测下一个离群点,直到检测出所有离群点。
[0034] 具体来说,如图1所示的一个简单的二维对象数据集,拟检测近邻数量为2的2个 离群点(即k = 2, η = 2)。若按传统最准确的定义及算法,即以对象与其2个最近邻 的距离之和为离群度,那么TOP 2离群点(离群度最大的2个离群点)就是对象d、g,其离 群度分别为5. 242和5. 064,对象c的离群度为4. 606而排到第三,从而未能进入TOP 2。
[0035] 然而,对象c的离群度显然也较大,因为其比对象g更加远离对象a、b、e、f组成 的簇,但因其受离群点d的影响(将其作为最近邻计算离群度)而未能被检测出。本发明 的离群点定义及检测算法则能够在检测出对象d之后,剔除它,再检测下一个离群点,从而 尽量减少离群点对后续检测的影响。
[0036] 具体实施过程如下:
[0037] (1)读取数据,分块处理,逐个检测3个最近邻(k+η-Ι = 3),假设数据存储的顺 序为a、b、c、d、e、f、g,同时假设每次处理的数据块大小为3个对象,离群度阀值 wk(Dn,k, D)初始化为0。则第一次处理的数据块包括对象a、b、c,以全局数据集的对象(a、 b、c、d、e、f、g)逐个与数据块的每个对象计算距离,从而获得数据块的每个对象的3个最近 邻,以其离群度wk(P,D)更新阀值,再按照此阀值来更新隐式离群点候选集(最大可能 离群度大于或等于此阀值的对象就加入候选集,小于此阀值则剔除)。具体来说,对象a、b、 c的离群度分别为2、2、4.606,最大可能离群度分别为2.414、2.414、7.848,因而TOP 2 离群点为阀值D2-〇utlier为2(即为第2大离群点的离群度)。因 此时对象a、b、c的最大可能离群度都大于阀值,故都加入隐式离群点候选集(以下简称候 选集)。
[0038] (2)处理第二个数据块,即对象d、e、f,同样以全局数据集的对象(a、b、C、d、e、f、 g)逐个与数据块的每个对象计算距离,得到d、e、f的离群度分别为5. 242、2、2,最大 可能离群度分别为9. 242、2. 414、2. 414,这时TOP 2 离群点更新为d、c,阀值更新为 4. 606,故d加入候选集,而a、b从候选集剔除。
[0039] (3)处理第三个数据块,即对象g,同样以全局数据集的对象逐个与其计算距离, 得对象g的离群度为5. 064,最大可能离群度5. 99,故TOP 2 离群点更新为d、g, 阀值更新为5. 064。g加入候选集。
[0040] (4)此时候选集中共有c、d、g三个对象。离群度最大的对象,同时也是离群 度最大的隐式离群点,是d。剔除d之后,候选集中剩下c、g,因前面的计算,分别存储有3个 最近邻信息,分别检查它们的3个最近邻是否含有d,若有则剔除。显然c的最近邻就有d, 而g则没有。于是c的最近邻剔除d之后,其离群度(剔除了已检出的离群点的 离群度也称为隐式离群度)更新为7. 848,而g仍为5. 064,因而c的离群度较g高,成为第 二大的离群点。
[0041] (5)综上,TOP 2隐式离群点为d、c。另外,在以全局数据集的对象逐个与数据块 的对象计算距离时,是实时计算最大可能离群度的,若全局数据集还没扫描完就已发现最 大可能离群度小于阀值,则提前从数据块中剔除,不再继续计算距离。
[0042] 由上可知,以上对隐式离群点定义及对全局离群点检测算法,可以在保留基于距 离的通用性的前提下,降低离群点的影响,提高检测准确度。
【权利要求】
1. 一种基于距离的高准确率全局离群点检测算法,包含以下步骤: S1,将全局数据集以分块方式进行检测,被检测的每一块数据称为一个数据块; 52, 计算所读取数据块中每个对象p与全局数据集内每个对象的距离,同时计算对象p 的离群度和隐式离群度,如果该对象的隐式离群度小于阀值,则从数据块中剔除而不 再继续计算其与全局数据集剩余对象的距离; 53, 根据S2计算的数据块情况维护TOPη此离群点队列,更新阀值; 54, 根据S2计算的数据块情况和S3更新的阀值维护隐式离群点候选集; 55, 当所有数据块都按照S2-S4步骤计算完后,从候选集剔除最大离群点并加入 TOPη隐式离群点;如果候选集中对象的近邻含有当前最后一个隐式离群点,则删除该近 邻; 56, 以离群度从候选集中计算新的最大离群点,并将其加入TOPη隐式离群点,同 时从候选集中剔除;如果隐式离群点数量小于η,则重复S5、S6,否则输出TOPη隐式离群 点。
2. 根据权利要求1所述的基于距离的高准确率全局离群点检测算法,其特征在于:所 述的隐式离群点为按照定义,每检测出一个离群点,执行(TOP-I),剔除后再继续检测 下一个离群点,直到检测出所有离群点。
【文档编号】G06F17/30GK104462379SQ201410752163
【公开日】2015年3月25日 申请日期:2014年12月10日 优先权日:2014年12月10日
【发明者】毛睿, 许红龙, 陆敏华, 李荣华, 王毅, 刘刚, 陆克中 申请人:深圳大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1