一种度量空间离群检测方法及装置制造方法及图纸

技术编号:20655078 阅读:31 留言:0更新日期:2019-03-23 06:47
本公开公开了一种度量空间离群检测方法及装置,从多个随机选取的支撑点之中,选择密度最大的支撑点,实时检查当前正在检测的对象是否符合终止规则,对确认为非离群点的对象,使用度量空间三角不等性以检查最近邻数量最近邻能否也作为非离群点而提前排除,完全基于距离的离群点检测算法,对不同的数据类型具有很强的通用性,本公开在保持基于距离的通用性的同时,具有较高的检测效率,且兼容多种离群点定义,有利于缩短程序运行时间,减少距离计算次数,建立索引时间开销较小,索引加速效果好。

【技术实现步骤摘要】
一种度量空间离群检测方法及装置
本公开涉及数据挖掘
,具体涉及一种基于自适应密度峰值支撑点的度量空间离群检测方法。
技术介绍
度量空间离群检测方法适用于大多数数据类型,图像、音视频、蛋白质等复杂数据类型。但传统算法存在着索引效率低下、离群检测速度较慢等问题。下面以与本公开最为接近的iORCA算法为例介绍度量空间离群检测方法。ORCA算法是iORCA算法的前身,它分块检测数据集,并应用简单的剪枝规则,一旦计算得对象的当前离群度低于TOPn离群点阈值,则该对象再也可能成为离群点(因为其所用的离群点定义就是该对象与其k最近邻的距离之和,或者该对象与其第k个最近邻的距离,显然随着k最近邻搜索的进行,离群度不可能增大),获得近似线性的检测速度,成为离群检测领域的state-of-art算法。iORCA算法是本领域代表性算法。算法专利技术者认为,离群点在数据集中占的比较非常小,因此被随机选中的概率非常低。故而该算法随机选取数据集一个对象作为支撑点,然后计算所有对象与其距离,再按降序排序,从而建立简单索引。基于该索引,相当于按照与支撑点的距离,从远到近检测离群点。实验表明该算法较ORCA算法检测速度有了很大的提升。iORCA算法的缺点①iORCA算法随机选取一个支撑点,算法性能波动较大,即如果离群点或者较稀疏处的正常点被选到,都会导致算法不能尽早结束而使性能下降。②iORCA算法每检测完一个数据块,才检查下一个数据块的首个对象是否符合终止规则(即能否直接作为非离群点排除,从而能够直接排除剩下所有未检测的对象,提前终止离群检测程序)。如此,终止程序的时机比较滞后。③iORCA算法未能充分发挥度量空间“三角不等性”作用来排除更多非离群点。
技术实现思路
本公开提供一种度量空间离群检测方法及装置,与现有的iORCA算法的缺点对应,本公开从多个随机选取的支撑点之中,选择密度最大(即密度峰值)的支撑点,实时检查当前正在检测的对象是否符合终止规则,对确认为非离群点的对象,使用度量空间“三角不等性”检查其k最近邻能否也作为非离群点而提前排除。为了实现上述目的,根据本公开的一方面,提供一种度量空间离群检测方法,所述方法包括以下步骤:步骤1,选取数据集自适应密度峰值的支撑点;步骤2,根据支撑点建立数据集的度量空间支撑点索引;步骤3,定义剪枝规则;步骤4,根据剪枝规则与支撑点索引进行离群检测;步骤5,输出离群点。进一步地,在步骤1中,选取数据集自适应密度峰值的支撑点的方法包括以下步骤,步骤1.1,随机选取数据集的m个候选支撑点,所述m为整数且由用户输入,一般为数据集规模的0.1%,如果该值小于10则设置为10,默认值为数据集规模的0.1%;步骤1.2,计算数据集中所有对象,例如对象x,与第1个候选支撑点p1的距离并存储距离信息d(p1,x),并保存最大距离值maxDistance,将所有候选支撑点的密度值初始化为0;步骤1.3,检查这些已经保存的距离信息,如果d(x,p1)<0.1*maxDistance,则候选支撑点p1的密度值加3,否则如果d(x,p1)<0.2*maxDistance,则候选支撑点p1的密度值加2;否则如果d(x,p1)<0.4*maxDistance,则候选支撑点p1的密度值加1;步骤1.4,对于数据集的每个对象x与除第1个之外的其它每个候选支撑点pi,其中2≤i≤m,如果||d(p1,pi)-d(p1,x)||<0.4*maxDistance,则计算对象x与对象pi的距离d(x,pi),否则不必计算,即利用距离三角不等性避免不必要的距离计算;步骤1.5,如果d(x,pi)<0.1*maxDistance,则候选支撑点pi的密度值加3;否则如果d(x,pi)<0.2*maxDistance,则候选支撑点pi的密度值加2;否则如果d(x,pi)<0.4*maxDistance,则候选支撑点pi的密度值加1;步骤1.6,根据所有候选支撑点的密度值,取具有最大密度值的候选支撑点作为支撑点P输出。其中,d(a,b)表示对象a与b的距离,针对不同的数据类型可使用不同的距离函数,例如多维数据使用欧几里德距离等。||a||表示式子a的绝对值,其中,密度值加1的意义为密度值累加1。进一步地,在步骤1.1中,所述随机选取数据集的m个候选支撑点的方法包括以下步骤:在读入数据集之后,获取数据集大小totalSize;建立并初始化长度等于数据集大小(即totalSize)的整形数组startArray,数组元素内容与其下标相同,例如startArray[0]=0,startArray[2018]=2018,这个元素内容代表数据集里各个对象的ID,即对象的唯一标识符;使用编程语言对应的随机数生成器(例如C++,推荐使用MT19937随机数生成器),从startArray数组随机抽取1个元素,作为第1个候选支撑点,注意抽取的数组下标范围为0至totalSize-1(即范围大小为totalSize),假设被抽取元素下标为loc1;将数组最后一个有效元素(下标为totalSize-1的元素)移至loc1,即令startArray[loc1]=startArray[totalSize-1];使用随机数生成器,从startArray数组随机抽取1个元素,作为第2个候选支撑点,注意本次抽取的数组下标范围为0至totalSize-2(即范围大小为totalSize-1),假设被抽取元素下标为loc2;将数组最后一个有效元素(下标为totalSize-2的元素)移至loc2,即令startArray[loc2]=startArray[totalSize-2];依此类推,每次都从剩下的有效元素里随机抽取,然后把当前最后一个有效元素移至被抽取出的地方,直到抽取到m个元素,即一共抽取m次。执行上述步骤,得到m个候选支撑点,所述m为整数的随机值。进一步地,在步骤2中,根据支撑点建立数据集的度量空间支撑点索引的方法包括以下步骤,步骤2.1,将整个数据集的所有对象与支撑点P计算距离,并保存这些距离信息,称为支撑点空间;步骤2.2,将这些距离信息按从大到小排序,形成支撑点索引,后续进行离群检测时,即是按照索引顺序。进一步地,在步骤3中,定义剪枝规则的方法包括以下步骤,步骤3.1,假设给定D为数据集,c为离群度阈值,P为支撑点,x为离群检测方法正在检测的数据对象,d()为距离函数,nnk(P,D)表示对象P在数据集D中的第k最近邻;步骤3.2,设定剪枝规则的终止规则为,如果d(x,P)+d(P,nnk(P,D))<c,那么离群检测过程能够终止并得到正确的结果;步骤3.3,设定排除非k最近邻的对象约束为,如果||d(x,P)-d(xj,P)||>d(x,nnk(x,D)),即对象x与对象xj的支撑点空间距离大于x与其第k最近邻的距离,那么xj不可能为x的k最近邻;步骤3.4,如果d(x,nnk(x,D))<0.5*c那么对象x及其k个最近邻都能够作为非离群点排除。进一步地,在步骤4中,根据剪枝规则与支撑点索引进行离群检测的方法包括以下步骤,输入:最近邻数量k,拟检测离群点数量n,数据集D,假设给定D为数据本文档来自技高网
...

【技术保护点】
1.一种度量空间离群检测方法,其特征在于,所述方法包括以下步骤:步骤1,选取数据集自适应密度峰值的支撑点;步骤2,根据支撑点建立数据集的度量空间支撑点索引;步骤3,定义剪枝规则;步骤4,根据剪枝规则与支撑点索引进行离群检测;步骤5,输出离群点。

【技术特征摘要】
1.一种度量空间离群检测方法,其特征在于,所述方法包括以下步骤:步骤1,选取数据集自适应密度峰值的支撑点;步骤2,根据支撑点建立数据集的度量空间支撑点索引;步骤3,定义剪枝规则;步骤4,根据剪枝规则与支撑点索引进行离群检测;步骤5,输出离群点。2.根据权利要求1所述的一种度量空间离群检测方法,其特征在于,在步骤1中,选取数据集自适应密度峰值的支撑点的方法包括以下步骤,步骤1.1,随机选取数据集的m个候选支撑点,所述m为整数可由用户输入,默认值为数据集规模的0.1%;步骤1.2,计算数据集中所有对象,例如对象x,与第1个候选支撑点p1的距离并存储距离信息d(p1,x),并保存最大距离值maxDistance,将所有候选支撑点的密度值初始化为0;步骤1.3,检查这些已经保存的距离信息,如果d(x,p1)<0.1*maxDistance,则候选支撑点p1的密度值加3,否则如果d(x,p1)<0.2*maxDistance,则候选支撑点p1的密度值加2;否则如果d(x,p1)<0.4*maxDistance,则候选支撑点p1的密度值加1;步骤1.4,对于数据集的每个对象x与除第1个之外的其它每个候选支撑点pi,2≤i≤m,如果||d(p1,pi)-d(p1,x)||<0.4*maxDistance,则计算对象x与对象pi的距离d(x,pi),否则不必计算;步骤1.5,如果d(x,pi)<0.1*maxDistance,则候选支撑点pi的密度值加3;否则如果d(x,pi)<0.2*maxDistance,则候选支撑点pi的密度值加2;否则如果d(x,pi)<0.4*maxDistance,则候选支撑点pi的密度值加1;步骤1.6,根据所有候选支撑点的密度值,取具有最大密度值的候选支撑点作为支撑点P输出。3.根据权利要求1所述的一种度量空间离群检测方法,其特征在于,在步骤2中,根据支撑点建立数据集的度量空间支撑点索引的方法包括以下步骤,步骤2.1,将整个数据集的所有对象与支撑点P计算距离,并保存这些距离信息,称为支撑点空间;步骤2.2,将这些距离信息按从大到小排序,形成支撑点索引,后续进行离群检测时,即是按照索引顺序。4.根据权利要求1所述的一种度量空间离群检测方法,其特征在于,在步骤3中,定义剪枝规则的方法包括以下步骤,步骤3.1,假设给定D为数据集,c为离群度阈值,P为支撑点,x为离群检测方法正在检测的数据对象,d()为距离函数,nnk(P,D)表示对象P在数据集D中的第k最近邻;步骤3.2,设定剪枝规则的终止规则为,如果d(x,P)+d(P,nnk(P,D))<c,那么...

【专利技术属性】
技术研发人员:许红龙黄文俊罗云
申请(专利权)人:广东奥博信息产业股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1