一种基于多支撑点索引的离群检测方法及其系统的制作方法

文档序号:10612846阅读:225来源:国知局
一种基于多支撑点索引的离群检测方法及其系统的制作方法
【专利摘要】本发明提供了一种基于多支撑点索引的离群检测方法,包括:选取支撑点步骤:读入数据集,在所述数据集中选取多个支撑点以形成支撑点集;建立索引步骤:通过数据集中每个对象与所选取的多个支撑点计算距离并将距离作为坐标,形成多维数据空间,利用所述多维数据空间建立索引;离群检测步骤:划分索引为数据块,并对所述数据块进行逐块检测离群点。本发明还提供一种基于多支撑点索引的离群检测系统。本发明提供的技术方案通过选取多个支撑点与全局数据集计算距离来建立索引,避免单支撑点导致的数据空间扭曲,对数据集中的所有稀疏区域优先检测,能更快地提升离群度阈值,提高离群检测速度。
【专利说明】
一种基于多支撑点索引的离群检测方法及其系统
技术领域
[0001]本发明涉及计算机领域,尤其涉及一种基于多支撑点索引的离群检测方法及其系统。
【背景技术】
[0002]离群点是数据集中与众不同的数据点,其表现与其它点如此不同,以至于使人怀疑这些数据并非随机的偏差,而是由另外一种完全不同的机制所产生的。离群点也称异常点或者异常对象。离群点检测也称为异常检测、偏差检测或离群点挖掘,它就是按照一定的算法把数据集中的离群点检测出来,例如检测出TOP-n离群点,或者所有符合要求的离群点。换言之,离群点检测就是挖掘海量数据中极少数与主流数据显著不同的点。
[0003]目前,针对离群点的检测算法主要包括ORCA算法以及1RCA算法。
[0004]其中,0RCA算法采用随机打乱数据集顺序的方法,以便获得平均近似线性的时间复杂度。然而,在最坏情况下,时间复杂度仍然高达0(n2)!即使在平均情况下,由于离群度阀值上升速度较慢,导致剪枝效率不够理想。在数据集规模较大的情况下,所需检测时间仍然太长。
[0005]1RCA算法的缺点包括:首先,仅仅使用一个支撑点,在节省建索引时间的同时,却导致了数据空间的扭曲,降低了索引质量,不能很好地发挥剪枝效率;其次,1RCA算法为尽快提升离群度阈值,优先检测距离支撑点较远的区域,但忽略了其它稀疏区域,但离群度阈值的提升速度具有局限性;再次,1RCA算法并未提供支撑点选取算法,而支撑点的好坏与算法性能密切相关,换言之,1RCA算法采用的支撑点选取方法仅仅是随机选取,效果不稳定;最后,1RCA算法只用一个终止规则来判断是否停止检测离群点,未能充分发挥度量空间“三角不等性”作用来进一步减少距离计算次数。

【发明内容】

[0006]有鉴于此,本发明的目的在于提供一种基于多支撑点索引的离群检测方法及其系统,旨在解决现有技术中采用的单支撑点导致数据空间扭曲以及离群检测速度不高的问题。
[0007]本发明提出一种基于多支撑点索引的离群检测方法,所述方法包括:
[0008]选取支撑点步骤:读入数据集,在所述数据集中选取多个支撑点以形成支撑点集;
[0009]建立索引步骤:通过数据集中每个对象与所选取的多个支撑点计算距离并将距离作为坐标,形成多维数据空间,利用所述多维数据空间建立索引;
[0010]离群检测步骤:划分索引为数据块,并对所述数据块进行逐块检测离群点。
[0011 ]优选的,所述选取支撑点步骤具体包括:
[0012]在读入数据集之后,随机选取初始参考点,并选取与所述初始参考点距离最远的点为基准点;
[0013]计算所述数据集中的各个对象与所述基准点的距离;
[0014]按照距离的从小到大的顺序排序;
[0015]将所述数据集划分为等距离的多段;
[0016]将所述多段按照所含对象数量的大小进行排序;
[0017]判断各个分段所含对象数量是否相等;
[0018]如果各个分段所含对象数量不相等,则将各分段的数量中点按序加入支撑点集;
[0019]如果各个分段所含对象数量相等,则优先将离所述初始参考点较近的分段的数量中点加入支撑点集。
[0020]优选的,所述建立索引步骤具体包括:
[0021]按照拟转换的多维数据维数,选择所述支撑点集中的对应数量的支撑点;
[0022]将所述数据集中每个对象映射为与各个支撑点的距离值,以形成多维数据空间;
[0023]将多维数据空间映射为整数坐标值;
[0024]使用HiIbert索引映射算法直接计算每对整数坐标值的Hi Ibert编码数值;
[0025]将得到的多个Hilbert编码数值进行排序,以建立Hilbert索引。
[0026]优选的,所述离群检测步骤具体包括:
[0027]划分所述HiIbert索引为数据块,按编码值从稀疏到密集为这些数据块排序以作为离群检测顺序;
[0028]设置离群度阈值初始化为O,按检测顺序逐个数据块读取所述数据集;
[0029]如果当前数据块中的所有对象都不可能为离群点,则直接进入下一个数据块;
[0030]如果当前数据块中有对象可能为离群点,则从所述当前数据块中位的对象开始以螺旋式的顺序搜索最近邻,并将判断不可能是离群点的对象从被检测的当前数据块里移除,直到当前数据块中的所有对象都处理完后更新TOP η离群点和离群度阈值,并进入下一个数据块;
[0031]当所有数据块都处理完时,输出TOPη离群点。
[0032]另一方面,本发明还提供一种基于多支撑点索引的离群检测系统,所述系统包括:
[0033]选取支撑点模块,用于读入数据集,在所述数据集中选取多个支撑点以形成支撑点集;
[0034]建立索引模块,用于通过数据集中每个对象与所选取的多个支撑点计算距离并将距离作为坐标,形成多维数据空间,利用所述多维数据空间建立索引;
[0035]离群检测模块,用于划分索引为数据块,并对所述数据块进行逐块检测离群点。
[0036]优选的,所述选取支撑点模块具体用于:
[0037]在读入数据集之后,随机选取初始参考点,并选取与所述初始参考点距离最远的点为基准点;
[0038]计算所述数据集中的各个对象与所述基准点的距离;
[0039]按照距离的从小到大的顺序排序;
[0040]将所述数据集划分为等距离的多段;
[0041 ]将所述多段按照所含对象数量的大小进行排序;
[0042]判断各个分段所含对象数量是否相等;
[0043]如果各个分段所含对象数量不相等,则将各分段的数量中点按序加入支撑点集;
[0044]如果各个分段所含对象数量相等,则将离所述初始参考点较近的分段的数量中点加入支撑点集。
[0045]优选的,所述建立索引模块具体用于:
[0046]按照拟转换的多维数据维数,选择所述支撑点集中的对应数量的支撑点;
[0047]将所述数据集中每个对象映射为与各个支撑点的距离值,以形成多维数据空间;
[0048]将多维数据空间映射为整数坐标值;
[0049]使用HiIbert索引映射算法直接计算每对整数坐标值的Hi Ibert编码数值;
[0050]将得到的多个Hilbert编码数值进行排序,以建立Hilbert索引。
[0051 ]优选的,所述离群检测模块具体用于:
[0052]划分所述Hilbert索引为数据块,按编码值从稀疏到密集为这些数据块排序以作为离群检测顺序;
[0053]设置离群度阈值初始化为O,按检测顺序逐个数据块读取所述数据集;
[0054]如果当前数据块中的所有对象都不可能为离群点,则直接进入下一个数据块;
[0055]如果当前数据块中有对象可能为离群点,则从所述当前数据块中位的对象开始以螺旋式的顺序搜索最近邻,并将判断不可能是离群点的对象从被检测的当前数据块里移除,直到当前数据块中的所有对象都处理完后更新TOP η离群点和离群度阈值,并进入下一个数据块;
[0056]当所有数据块都处理完时,输出TOPη离群点。
[0057]本发明提供的技术方案为减少数据空间扭曲,在数据集中选取多个支撑点,建立索引,同时确保建立索引时间开销极小(相对于离群检测总时间而言);为更快提升离群度阈值,优先检测数据集中的所有稀疏区域,包括较远区域和其它稀疏区域;为提高算法性能的稳定性,提出近似密集区域支撑点选取算法,在极短的时间内选取到质量相对较好的支撑点;为进一步减少距离计算次数,加快离群检测速度,使用多个剪枝规则,更大幅度地排除非离群点和非k最近邻对象。本发明提供的技术方案通过选取多个支撑点与全局数据集计算距离来建立索引,避免单支撑点导致的数据空间扭曲,对数据集中的所有稀疏区域优先检测,能更快地提升离群度阈值,提高离群检测速度。
【附图说明】
[0058]图1为本发明一实施方式中基于多支撑点索引的离群检测方法流程图;
[0059]图2为本发明一实施方式中图1所示的步骤Sll的详细流程图;
[0060]图3为本发明一实施方式中图1所示的步骤S12的详细流程图;
[0061]图4为本发明一实施方式中图1所示的步骤S13的详细流程图;
[0062]图5为本发明一实施方式中基于多支撑点索引的离群检测系统10的内部结构示意图。
【具体实施方式】
[0063]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0064]本发明技术方案中出现的名词及其解释如下所示:
[0065]离群度:一个对象的离群度表示其离群的程度,常用其与k最近邻的距离的平均值作为离群度,或者其与第k个最近邻的距离值作为离群度;
[0066]数据块:离群检测的一个单位,由数据集中的若干个对象组成,例如常用1000个对象作为一个数据块;
[0067]离群度阈值:TOPη离群点的第η个离群点的离群度;
[0068]螺旋顺序:例如有一个索引序列1、2、3、4、5、6、7、8、9、10,如果以5为起点,它的螺旋顺序就是5、4、6、3、7、2、8……,或者5、6、4、7、3、8、2……,就是一前一后、依此类推的意思;
[0069]数量中点:从数量上算的中点,比该对象大的对象数量,与比该对象小的对象数量,相差不超过I,或者相等。
[0070]本发明【具体实施方式】提供了一种基于多支撑点索引的离群检测方法,所述方法主要包括如下步骤:
[0071]S11、选取支撑点步骤:读入数据集,在所述数据集中选取多个支撑点以形成支撑点集;
[0072]S12、建立索引步骤:通过数据集中每个对象与所选取的多个支撑点计算距离并将距离作为坐标,形成多维数据空间,利用所述多维数据空间建立索引;
[0073]SI 3、离群检测步骤:划分索引为数据块,并对所述数据块进行逐块检测离群点。
[0074]本发明提供的一种基于多支撑点索引的离群检测方法通过选取多个支撑点与全局数据集计算距离来建立索引,避免单支撑点导致的数据空间扭曲,对数据集中的所有稀疏区域优先检测,能更快地提升离群度阈值,提高离群检测速度。
[0075]以下将对本发明所提供的一种基于多支撑点索引的离群检测方法进行详细说明。
[0076]请参阅图1,为本发明一实施方式中基于多支撑点索引的离群检测方法流程图。
[0077]在步骤Sll中,选取支撑点步骤:读入数据集,在所述数据集中选取多个支撑点以形成支撑点集。
[0078]在本实施方式中,所述选取支撑点步骤Sll具体包括子步骤S111-S118,如图2所不O
[0079]请参阅图2,为本发明一实施方式中图1所示的步骤Sll的详细流程图。
[0080]在步骤SI11中,在读入数据集之后,随机选取初始参考点,并选取与所述初始参考点距离最远的点为基准点。
[0081]在步骤S112中,计算所述数据集中的各个对象与所述基准点的距离。
[0082]在步骤S113中,按照距离的从小到大的顺序排序。
[0083]在步骤S114中,将所述数据集划分为等距离的多段。
[0084]在步骤S115中,将所述多段按照所含对象数量的大小进行排序。
[0085]在步骤3116中,判断各个分段所含对象数量是否相等。
[0086]在步骤S117中,如果各个分段所含对象数量不相等,则将各分段的数量中点按序加入支撑点集。
[0087]在步骤S118中,如果各个分段所含对象数量相等,则将离所述初始参考点较近的分段的数量中点加入支撑点集。
[0088]在本实施方式中,利用等距划分的情形对数据集在基准点到与其距离最远对象的基础上,按相等的距离增量划分数据集。假设最远距离为df,拟划分为η段,那么可分别在与基准点距离df/n、2df/n、……、(n-l)df/n等处划分,从而将数据集划分为等距离但对象数量不一定相等的η段。其确定密集区域的方法是,先统计各段所含对象数量,再按此数量排序,数量大者为支撑点选取的候选区域。
[0089]在本实施方式中,在读入数据集之后,随机选取临时参考点作为初始参考点,搜索数据集中与其距离最远的对象,以该对象为基点,计算数据集中各个对象与参考点的距离,按照从小到大的顺序排序,采用“等距划分+数量中点”的方法,取划分后的各段中位点加入支撑点候选集。计算每个段的对象数量,再对对象数量按从大到小的顺序排序。对于对象数量相等的分段,比较获得这些分段之中与参考点距离最近的分段,取其数量中点作为第一个支撑点。遇到分段所含对象数量相等时,则优先选取离支撑点较近的分段中点为支撑点。
[0090]在本实施方式中,应该注意的是,为了使支撑点候选集能选取足够数量的支撑点,其规模(也就是分段的数量)应大于拟选支撑点数量。为确保选取质量,分段数量一般应该是支撑点数量的2倍以上。此外,如果使用数据集的子集来选取支撑点,同样为了确保支撑点质量,其规模也不能过小,一般取一个数据块即可,在支撑点数量较多的情况下,就应该使用更多数据块了。
[0091]请继续参阅图1,在步骤S12中,建立索引步骤:通过所选取的多个支撑点形成多维数据空间,利用所述多维数据空间建立索引。
[0092 ]在本实施方式中,所述建立索弓I步骤SI 2具体包括子步骤SI 21 -SI 25,如图3所示。
[0093]请参阅图3,为本发明一实施方式中图1所示的步骤S12的详细流程图。
[0094]在步骤S121中,按照拟转换的多维数据维数,选择所述支撑点集中的对应数量的支撑点。
[0095]在步骤S122中,将所述数据集中每个对象映射为与各个支撑点的距离值,以形成多维数据空间。
[0096]在步骤SI23中,将多维数据空间映射为整数坐标值。
[0097]在步骤S124中,使用Hilbert索引映射算法直接计算每对整数坐标值的Hilbert编码数值。
[0098]在步骤SI25中,将得到的多个HiIbert编码数值进行排序,以建立Hi Ibert索引。
[0099]在本实施方式中,在读取数据集之后,按照拟转换的多维数据维数,使用支撑点选取算法,选取相应数量的支撑点,将数据集每个对象映射为与各个支撑点的距离值,形成多维数据空间(即实数坐标值)。接下来将实数坐标值映射为整数坐标值,然后使用Hilbert索引映射算法,直接计算每对整数坐标值的Hilbert编码数值,这样就完成了对度量空间对象的编码,再将这些编码值排序,即建立Hi Ibert索引。
[0100]请继续参阅图1,在步骤S13中,离群检测步骤:划分索引为数据块,并对所述数据块进行逐块检测离群点。
[0101]在本实施方式中,所述离群检测步骤S13具体包括子步骤S131-S135,如图4所示。
[0102]请参阅图4,为本发明一实施方式中图1所示的步骤S13的详细流程图。
[0103]在步骤S131中,划分所述Hilbert索引为数据块,按编码值从稀疏到密集为这些数据块排序以作为离群检测顺序。
[0104]在步骤S132中,设置离群度阈值初始化为0,按检测顺序逐个数据块读取所述数据集。
[0105]在步骤S133中,如果当前数据块中的所有对象都不可能为离群点,则直接进入下一个数据块。
[0106]在步骤S134中,如果当前数据块中有对象可能为离群点,则从所述当前数据块中位的对象开始以螺旋式的顺序搜索最近邻,并将判断不可能是离群点的对象从被检测的当前数据块里移除,直到当前数据块中的所有对象都处理完后更新TOP η离群点和离群度阈值,并进入下一个数据块。
[0107]在步骤S135中,当所有数据块都处理完时,输出TOPη离群点。
[0108]在本实施方式中,以伪代码描述算法为例进行说明,输入:最近邻数量k,拟检测离群点数量η,数据集D;输出:TOP η离群点。则上述步骤SI3包括:
[0109]在索引建立之后,对索引数据按数据块(例如1000个对象为一个数据块)划分,对数据块计算Hi Ibert编码值增量并按降序排序。接下来按排好顺序的数据块逐块检测离群点。对于每个数据块,刚开始检测时,先调用剪枝规则三,判断是否可能含有离群点,若无,则直接进入下一个数据块;若有,则从数据块中位的对象开始,以螺旋式的顺序搜索最近邻。对于被检数据块B里的每个对象,先使用剪枝规则一判断有没可能是离群点,若不可能,则将其从数据块B移除,并进入下一对象的检测;若可能是离群点,则继续搜索其k最近邻。在计算距离之前,使用剪枝规则二判断有没可能是k最近邻,若不可能是其k最近邻,则不计算两者的距离,直接进入下一对象的检测;若可能,则计算两者的距离,并尝试更新其k最近邻,同时判断其当前离群度是否小于阈值c,若小于,则再也不可能成为离群点,从数据块B移除。
[0110]在本实施方式中,其中三大剪枝规则如下:
[0111](I)剪枝规则一:排除非离群点的对象。
[0112]如果也81:(叉^)+(1181:^,11111{(?1,0))〈(3,其中卩{?
[0113]那么X不可能为离群点。
[0114]换言之,支撑点pi及它的k最近邻与对象X的距离都小于C,所以对象X在半径c范围内至少有k个对象,其离群度必定小于c。
[0115](2)剪枝规则二:排除非k最近邻的对象。
[0116]如果I I dist(xt,pi)-dist(xj,Pi) I | >dist(xt,nnk(xt,D)),其中piGP
[0117]那么Xj不可能为Xt的k最近邻。
[0118](3)剪枝规则三:
[0119]如果也81:(13#)+(1181:^,11111{(?1,0))〈(3,其中卩{?
[0120]那么数据块B中的所有对象都不可能为离群点。
[0121]也就是说,数据块B的所有对象在距离c范围内都有k个以上的最近邻。
[0122]在本实施方式中,实际上,在检测完一个数据块之后,数据块里的对象可能已被大量移除。对于剩下的对象,逐个尝试加入TOP η离群点,并更新离群点阈值C。检测完所有数据块之后,输出TOP η离群点。
[0123]本发明提供的技术方案为减少数据空间扭曲,在数据集中选取多个支撑点,建立索引,同时确保建立索引时间开销极小(相对于离群检测总时间而言);为更快提升离群度阈值,优先检测数据集中的所有稀疏区域,包括较远区域和其它稀疏区域;为提高算法性能的稳定性,提出近似密集区域支撑点选取算法,在极短的时间内选取到质量相对较好的支撑点;为进一步减少距离计算次数,加快离群检测速度,使用多个剪枝规则,更大幅度地排除非离群点和非k最近邻对象。本发明提供的技术方案通过选取多个支撑点与全局数据集计算距离来建立索引,避免单支撑点导致的数据空间扭曲,对数据集中的所有稀疏区域优先检测,能更快地提升离群度阈值,提高离群检测速度。
[0124]本发明提供的技术方案在保持基于距离的通用性的同时,能提供较高的检测速度,且兼容多种离群点定义。本发明提供的技术方案使用三大剪枝规则,大量排除非离群点和非k最近邻,减少距离计算次数,提高离群检测速度。
[0125]本发明【具体实施方式】还提供一种基于多支撑点索引的离群检测系统10,主要包括:
[0126]选取支撑点模块11,用于读入数据集,在所述数据集中选取多个支撑点以形成支撑点集;
[0127]建立索引模块12,用于通过数据集中每个对象与所选取的多个支撑点计算距离并将距离作为坐标,形成多维数据空间,利用所述多维数据空间建立索引;
[0128]离群检测模块13,用于划分索引为数据块,并对所述数据块进行逐块检测离群点。
[0129]本发明提供的一种基于多支撑点索引的离群检测系统10,通过选取多个支撑点与全局数据集计算距离来建立索引,避免单支撑点导致的数据空间扭曲,对数据集中的所有稀疏区域优先检测,能更快地提升离群度阈值,提高离群检测速度。
[0130]请参阅图5,所示为本发明一实施方式中基于多支撑点索引的离群检测系统10的结构示意图。在本实施方式中,基于多支撑点索引的离群检测系统10主要包括选取支撑点模块11、建立索引模块12以及离群检测模块13。
[0131]选取支撑点模块11,用于读入数据集,在所述数据集中选取多个支撑点以形成支撑点集。
[0132]在本实施方式中,所述选取支撑点模块11具体用于:在读入数据集之后,随机选取初始参考点,并选取与所述初始参考点距离最远的点为基准点;计算所述数据集中的各个对象与所述基准点的距离;按照距离的从小到大的顺序排序;将所述数据集划分为等距离的多段;将所述多段按照所含对象数量的大小进行排序;判断各个分段所含对象数量是否相等;如果各个分段所含对象数量不相等,则将各分段的数量中点按序加入支撑点集;
[0133]如果各个分段所含对象数量相等,则将离所述初始参考点较近的分段的数量中点加入支撑点集。
[0134]建立索引模块12,用于通过所选取的多个支撑点形成多维数据空间,利用所述多维数据空间建立索引。
[0135]在本实施方式中,所述建立索引模块12具体用于:
[0136]按照拟转换的多维数据维数,选择所述支撑点集中的对应数量的支撑点;
[0137]将所述数据集中每个对象映射为与各个支撑点的距离值,以形成多维数据空间;
[0138]将多维数据空间映射为整数坐标值;
[0139]使用HiIbert索引映射算法直接计算每对整数坐标值的Hi Ibert编码数值;
[0140]将得到的多个HiIbert编码数值进行排序,以建立Hi Ibert索引。
[0141]离群检测模块13,用于划分索引为数据块,并对所述数据块进行逐块检测离群点。
[0142]在本实施方式中,所述离群检测模块13具体用于:
[0143]划分所述Hilbert索引为数据块,按编码值从稀疏到密集为这些数据块排序以作为离群检测顺序;
[0144]设置离群度阈值初始化为O,按检测顺序逐个数据块读取所述数据集;
[0145]如果当前数据块中的所有对象都不可能为离群点,则直接进入下一个数据块;
[0146]如果当前数据块中有对象可能为离群点,则从所述当前数据块中位的对象开始以螺旋式的顺序搜索最近邻,并将判断不可能是离群点的对象从被检测的当前数据块里移除,直到当前数据块中的所有对象都处理完后更新TOP η离群点和离群度阈值,并进入下一个数据块;当所有数据块都处理完时,输出TOP η离群点。
[0147]本发明提供的一种基于多支撑点索引的离群检测系统10,为减少数据空间扭曲,在数据集中选取多个支撑点,建立索引,同时确保建立索引时间开销极小(相对于离群检测总时间而言);为更快提升离群度阈值,优先检测数据集中的所有稀疏区域,包括较远区域和其它稀疏区域;为提高算法性能的稳定性,提出近似密集区域支撑点选取算法,在极短的时间内选取到质量相对较好的支撑点;为进一步减少距离计算次数,加快离群检测速度,使用多个剪枝规则,更大幅度地排除非离群点和非k最近邻对象。本发明提供的一种基于多支撑点索引的离群检测系统10通过选取多个支撑点与全局数据集计算距离来建立索引,避免单支撑点导致的数据空间扭曲,对数据集中的所有稀疏区域优先检测,能更快地提升离群度阈值,提高离群检测速度。
[0148]本发明提供的一种基于多支撑点索引的离群检测系统10在保持基于距离的通用性的同时,能提供较高的检测速度,且兼容多种离群点定义。本发明提供的一种基于多支撑点索引的离群检测系统10使用三大剪枝规则,大量排除非离群点和非k最近邻,减少距离计算次数,提高离群检测速度。
[0149]值得注意的是,上述实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0150]另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如R0M/RAM、磁盘或光盘等。
[0151]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于多支撑点索引的离群检测方法,其特征在于,所述方法包括: 选取支撑点步骤:读入数据集,在所述数据集中选取多个支撑点以形成支撑点集;建立索引步骤:通过数据集中每个对象与所选取的多个支撑点计算距离并将距离作为坐标,形成多维数据空间,利用所述多维数据空间建立索引; 离群检测步骤:划分索引为数据块,并对所述数据块进行逐块检测离群点。2.如权利要求1所述的基于多支撑点索引的离群检测方法,其特征在于,所述选取支撑点步骤具体包括: 在读入数据集之后,随机选取初始参考点,并选取与所述初始参考点距离最远的点为基准点; 计算所述数据集中的各个对象与所述基准点的距离; 按照距离的从小到大的顺序排序; 将所述数据集划分为等距离的多段; 将所述多段按照所含对象数量的大小进行排序; 判断各个分段所含对象数量是否相等; 如果各个分段所含对象数量不相等,则将各分段的数量中点按序加入支撑点集; 如果各个分段所含对象数量相等,则优先将离所述初始参考点较近的分段的数量中点加入支撑点集。3.如权利要求2所述的基于多支撑点索引的离群检测方法,其特征在于,所述建立索引步骤具体包括: 按照拟转换的多维数据维数,选择所述支撑点集中的对应数量的支撑点; 将所述数据集中每个对象映射为与各个支撑点的距离值,以形成多维数据空间; 将多维数据空间映射为整数坐标值; 使用Hi Ibert索引映射算法直接计算每对整数坐标值的Hi Ibert编码数值; 将得到的多个Hilbert编码数值进行排序,以建立Hilbert索引。4.如权利要求3所述的基于多支撑点索引的离群检测方法,其特征在于,所述离群检测步骤具体包括: 划分所述Hilbert索引为数据块,按编码值从稀疏到密集为这些数据块排序以作为离群检测顺序; 设置离群度阈值初始化为O,按检测顺序逐个数据块读取所述数据集; 如果当前数据块中的所有对象都不可能为离群点,则直接进入下一个数据块; 如果当前数据块中有对象可能为离群点,则从所述当前数据块中位的对象开始以螺旋式的顺序搜索最近邻,并将判断不可能是离群点的对象从被检测的当前数据块里移除,直到当前数据块中的所有对象都处理完后更新TOP η离群点和离群度阈值,并进入下一个数据块; 当所有数据块都处理完时,输出TOP η离群点。5.—种基于多支撑点索引的离群检测系统,其特征在于,所述系统包括: 选取支撑点模块,用于读入数据集,在所述数据集中选取多个支撑点以形成支撑点集;建立索引模块,用于通过数据集中每个对象与所选取的多个支撑点计算距离并将距离作为坐标,形成多维数据空间,利用所述多维数据空间建立索引; 离群检测模块,用于划分索引为数据块,并对所述数据块进行逐块检测离群点。6.如权利要求5所述的基于多支撑点索引的离群检测系统,其特征在于,所述选取支撑点模块具体用于: 在读入数据集之后,随机选取初始参考点,并选取与所述初始参考点距离最远的点为基准点; 计算所述数据集中的各个对象与所述基准点的距离; 按照距离的从小到大的顺序排序; 将所述数据集划分为等距离的多段; 将所述多段按照所含对象数量的大小进行排序; 判断各个分段所含对象数量是否相等; 如果各个分段所含对象数量不相等,则将各分段的数量中点按序加入支撑点集; 如果各个分段所含对象数量相等,则将离所述初始参考点较近的分段的数量中点加入支撑点集。7.如权利要求6所述的基于多支撑点索引的离群检测系统,其特征在于,所述建立索引模块具体用于: 按照拟转换的多维数据维数,选择所述支撑点集中的对应数量的支撑点; 将所述数据集中每个对象映射为与各个支撑点的距离值,以形成多维数据空间; 将多维数据空间映射为整数坐标值; 使用Hi Ibert索引映射算法直接计算每对整数坐标值的Hi Ibert编码数值; 将得到的多个Hilbert编码数值进行排序,以建立Hilbert索引。8.如权利要求7所述的基于多支撑点索引的离群检测系统,其特征在于,所述离群检测模块具体用于: 划分所述Hilbert索引为数据块,按编码值从稀疏到密集为这些数据块排序以作为离群检测顺序; 设置离群度阈值初始化为O,按检测顺序逐个数据块读取所述数据集; 如果当前数据块中的所有对象都不可能为离群点,则直接进入下一个数据块; 如果当前数据块中有对象可能为离群点,则从所述当前数据块中位的对象开始以螺旋式的顺序搜索最近邻,并将判断不可能是离群点的对象从被检测的当前数据块里移除,直到当前数据块中的所有对象都处理完后更新TOP η离群点和离群度阈值,并进入下一个数据块; 当所有数据块都处理完时,输出TOP η离群点。
【文档编号】G06F17/30GK105975519SQ201610278832
【公开日】2016年9月28日
【申请日】2016年4月28日
【发明人】许红龙, 毛睿, 陆敏华, 廖好, 李荣华, 王毅, 刘刚
【申请人】深圳大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1