度量空间划分方式评价方法、装置、计算机设备及存储介质与流程

文档序号:22676951发布日期:2020-10-28 12:33阅读:190来源:国知局
度量空间划分方式评价方法、装置、计算机设备及存储介质与流程

本发明涉及数据处理技术领域,特别涉及度量空间划分方式评价方法、装置、计算机设备及存储介质。



背景技术:

现有的树形度量空间索引大多是基于距离划分的,利用若干个数据到支撑点的距离之间的关系将数据空间划分成多个区域,以求在对索引进行范围搜索时可以排除掉部分区域从而提高搜索效率。现有基于划分的度量空间索引主要是基于球形划分或者基于超平面划分进行的。

其中,现有的基于划分的度量空间索引,根据划分结果的子空间的逻辑形态,大多可以分为以球形划分为基础和以超平面为基础两部分。

基于球形划分的索引方法利用支撑点和半径作为参数将空间划分成多个球子空间,典型的形态有以vp-tree为代表的对空间进行球形划分和以m-tree为代表的层次球形划分两种。vp-tree直接利用数据到支撑点的距离,将数据划分成球内和球外两个部分,而m-tree利用最小边界球的形式将数据进行平衡划分。

基于超平面划分的核心思想是将数据划分到离自己最近的支撑点所代表的区域,划分后的空间在逻辑上显现出voronoi的形态。基于超平面划分的最基本形式是jeffreyk.uhlmann提出来的超平面树gh-tree和sergeybrin提出了gna-tree。超平面划分的结果具有良好的几何特性,其划分所得的各区域之间不相互重叠。

但不同索引之间的性能比较都是通过各自进行,而不同的索引方法的索引条件往往是不相同的,性能影响也由多个因素共同决定,支撑点的不同、划分方式的不同、索引的平衡性等等都会对索引的性能造成较大的影响。利用不同的索引直接进行性能比较无法比对,无法客观地反映不同划分方式的内在差异,各种条件的差异也大大降低了客观性,同时效率低,时间成本高。



技术实现要素:

本发明的目的是提供度量空间划分方式评价方法、装置、计算机设备及存储介质,旨在解决现有评价方式效率低、时间成本高等问题。

本发明实施例提供一种度量空间划分方式评价方法,其中,包括:

对数据库中的数据进行度量空间的划分,获取n个法向量;

输入n个法向量作为划分超平面的法向量和范围搜索半径r;

利用选点算法选取n个支撑点;

以数据到支撑点的距离作为坐标,将度量空间中的数据映射为二维向量数据;

对数据进行完全划分,并计算落入r-邻域的数据;

输出落入r-邻域的数据的数目,并根据所述数目输出划分方法的评价结果。

进一步,所述对数据进行完全划分,并计算落入r-邻域的数据,包括:

判断向量组中的向量是否用完,若是则统计落入r-邻域的数据的数目;

若否则利用法向量和范围搜索半径r计算r-邻域的宽度;

依次取出法向量对当前子空间进行独立的划分,并标记落入划分边界r邻域的数据;

统计落入r-邻域的数据的数目。

进一步,所述利用法向量和范围搜索半径r计算r-邻域的宽度,包括:

按如下公式计算r-邻域的宽度:

其中,ai表示数据到第i个支撑点距离的权值。

进一步,所述依次取出法向量对当前子空间进行独立的划分,并标记落入划分边界r邻域的数据,包括:

取出其中一个法向量构造划分超平面,将上一子空间划分成互不相交的多个独立子空间,并对落入r-邻域范围内的数据进行标记;

然后取出下一个法向量构造划分超平面,分别对所述多个独立子空间进行划分,并对落入r-邻域范围内的数据进行标记;

依次类推,直至用完所有法向量。

进一步,将上一子空间划分成互不相交的两个独立子空间,并对落入r-邻域范围内的数据进行标记。

进一步,所述度量空间为二元组(s,d),其中s是有限非空的数据集合,而d是定义在s上的距离函数。

进一步,所述距离函数满足:

对于任意x,y,s,d(x,y)≥0,并且d(x,y)=0时,x=y;

对于任意x,y,s,d(x,y)=d(y,x);

对于任意x,y,z,s,d(x,y)+d(y,z)≥d(x,z)。

本发明实施例提供一种度量空间划分方式评价装置,其中,包括:

获取单元,用于对数据库中的数据进行度量空间的划分,获取n个法向量;

输入单元,用于输入n个法向量作为划分超平面的法向量和范围搜索半径r;

支撑点选取单元,用于利用选点算法选取n个支撑点;

映射单元,用于以数据到支撑点的距离作为坐标,将度量空间中的数据映射为二维向量数据;

完全划分单元,用于对数据进行完全划分,并计算落入r-邻域的数据;

评价单元,用于输出落入r-邻域的数据的数目,并根据所述数目输出划分方法的评价结果。

本发明实施例提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如上所述的度量空间划分方式评价方法。

本发明实施例提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如上所述的度量空间划分方式评价方法。

本发明实施例提供了度量空间划分方式评价方法、装置、计算机设备及存储介质,方法包括:对数据库中的数据进行度量空间的划分,获取n个法向量;输入n个法向量作为划分超平面的法向量和范围搜索半径r;利用选点算法选取n个支撑点;以数据到支撑点的距离作为坐标,将度量空间中的数据映射为二维向量数据;对数据进行完全划分,并计算落入r-邻域的数据;输出落入r-邻域的数据的数目,并根据所述数目输出划分方法的评价结果。本发明实施例不需要对数据库中的所有数据进行范围搜索,只需要在创建索引时计算出落入划分边界附近无法被排除的数据个数即可,极大地提高了评价的效率和降低了时间成本。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的度量空间划分方式评价方法的流程示意图;

图2为本发明实施例提供的度量空间划分方式评价装置的示意性框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

请参阅图1,本发明实施例提供一种度量空间划分方式评价方法,其包括步骤s101~s106:

s101、对数据库中的数据进行度量空间的划分,获取n个法向量;

首先对数据库中的数据进行度量空间的划分,以此获取n个法向量。

所述度量空间为二元组(s,d),其中s是有限非空的数据集合,而d是定义在s上的距离函数。

在一实施例中,所述距离函数满足:

对于任意x,y,s,d(x,y)≥0,并且d(x,y)=0时,x=y;

对于任意x,y,s,d(x,y)=d(y,x);

对于任意x,y,z,s,d(x,y)+d(y,z)≥d(x,z)。

s102、输入n个法向量作为划分超平面的法向量和范围搜索半径r;

例如划分两个划分边界d(x,p1)–d(x,p2)=d和d(x,p1)–d(x,p2)=d(d表示任意常数),对数据进行完全划分,则输入法向量(1,-1)、(1,1)和常用的范围搜索半径r(如r=1)。

所述范围搜索半径r的意义为:对于给定的搜索目标q和搜索半径r,范围搜索返回数据集中所有距离搜索目标q的距离小于等于r的数据。

在度量空间树形索引进行范围搜索时,利用搜索目标q到各个支撑点的距离的三角不等关系对范围搜索的结果进行界定,其中有部分是三角不等关系无法排除的部分,根据划分边界和无法排除的部分是否有交集确定是否能够对划分边界一侧的数据进行排除。无法排除的部分是以支撑点为圆心,以d(q,pi)±r(i=1,2,...,n)为半径的圆弧围成的不规则区域。利用搜索目标q到支撑点的距离将该无法排除的部分区域映射到支撑点空间中时,该区域表现为以q为几何中心的超立方体。因此,在将度量空间映射到支撑点空间过程中,范围搜索的结果包含在支撑点空间中的一个超立方体中,查询球中心点q映射成支撑点空间搜索超立方体的几何中心。

s103、利用选点算法选取n个支撑点;

根据向量组(1,-1)、(1,1)判断出n=2,那么可利用支撑点选点算法(如fft(最大最近距离优先)、增量模型等算法)选取出两个支撑点p1,p2。

s104、以数据到支撑点的距离作为坐标,将度量空间中的数据映射为二维向量数据;

例如以数据到支撑点p1,p2的距离作为坐标,将度量空间中的数据都映射成二维向量数据。

度量空间(m,d),s={si|si∈m,i=1,2,...,m},s中选择的n个支撑点p={p1,p2,...,pn},对于以其到支撑点的距离d(s,pi)作为坐标,可以定义一个从m到n维空间的映射,用sp表示s在n维空间中的像,则有:

fp,d:m->rn:sp≡fp,d(s)=(f1(s),f2(s),...,fn(s))=(d(s,p1),d(s,p2),...,d(s,pn))∈fp,d(m).

支撑点空间fp,d(s)就是s在rn的像:

fp,d(s)={sp|sp=d(s,p1),d(s,p2),...,d(s,pn)),s∈s}.

假设度量空间中三个数据s1,s2,s3,其中d(s2,s1)=12,d(s2,s3)=23,d(s1,s3)=13,当选用s1,s3两个支撑点时,得到的支撑点空间维度为2,s1,s2,s3在支撑点空间中的像分别为s1p=(d(s1,s1),d(s1,s3))=(0,13),s2p=(d(s2,s1),d(s2,s3))=(12,23),s3p=(d(s3,s1),d(s3,s3))=(13,0)。

s105、对数据进行完全划分,并计算落入r-邻域的数据;

在一实施例中,所述步骤s105包括:

s201、判断向量组中的向量是否用完,若是则统计落入r-邻域的数据的数目;

由于本实施例需要循环判断,所以先判断向量组中的向量是否已用完,没有的话则继续执行,即执行步骤s202,如果已用完,则直接统计即可。

s202、若否则利用法向量和范围搜索半径r计算r-邻域的宽度;

在一实施例中,所述步骤s202包括:

按如下公式计算r-邻域的宽度:

其中,ai表示数据到第i个支撑点距离的权值。

划分边界l的r-邻域是指划分边界l“附近”的一个区域,当范围搜索r(q,r)的中心q落入该区域时,进行范围搜索时,利用三角不等式无法对划分边界两边的区域进行排除,记作nr(l)。

划分边界l的r-邻域在度量空间中可以表述为,当范围搜索中心q落入到区域时,例如前述的无法排除的部分和划分边界l必相交。

从r-邻域的定义可知,在进行范围查找时q落入某个划分边界的r-邻域的机率越大,该划分边界有效地排除掉另一半数据的概率越低,该划分边界的剪枝能力越差。也即,r-邻域大小和划分边界的剪枝能力成负相关关系。本发明实施例利用的就是划分之后数据落入r-邻域内的数据的多少判断索引的剪枝能力,从而确定划分的优劣。

在支撑点空间中,r-邻域为与划分边界平行的两个超平面所包围的区域,当搜索超立方体的几何中心q落入该区域时,立方体必与划分边界相交,划分边界两边的数据在本次搜索中都无法被排除。

s203、依次取出法向量对当前子空间进行独立的划分,并标记落入划分边界r邻域的数据;

在一实施例中,所述步骤s203包括:

取出其中一个法向量构造划分超平面,将上一子空间划分成互不相交的多个独立子空间,并对落入r-邻域范围内的数据进行标记;

然后取出下一个法向量构造划分超平面,分别对所述多个独立子空间进行划分,并对落入r-邻域范围内的数据进行标记;

依次类推,直至用完所有法向量。

例如利用向量组(1,-1)、(1,1)对数据进行二路划分,则第一次取出(1,-1)构造划分超平面x-y=d,将当前空间划分成两个互不相交的独立子空间记为子空间1和子空间2,并标记所有的数据的isrn=true;第二次取出(1,1)构造划分超平面x+y=d1,对子空间1进行划分,并标记所有的数据的isrn=true,利用x+y=d2对子空间2进行划分,并标记所有并标志所有的数据的isrn=true。

在本实施例中,将上一子空间划分成互不相交的两个独立子空间,并对落入r-邻域范围内的数据进行标记。线性划分的每个边界映射到支撑点空间中,都表现为多维空间中的超平面,将这些将空间进行划分的超平面称之为划分超平面。当n=2时,2维平面上的划分超平面表现为直线,每条直线将当前平面划分成两个不相交的部分;当n=3时,3维空间的超平面表现为平面,每个平面将当前空间划分成两个不相交的部分。

对于度量空间(m,d),在s中选择出n个支撑点p1,p2,...,pn,利用线性关系a1·d(s,p1)+a2·d(s,p2)+...+an·d(s,pn)=c(c和ai都是常数,i=1,2,...,n)作为边界对数据进行划分的方法称为线性划分,其中ai表示数据到第i个支撑点距离的权值。在支撑点空间中,线性划分的划分边界表现为以(a1,a2,...,an)作为法向量的超平面a1x1+a2x2+...+anxn=c。线性划分的每一个边界都可以用一个对应的线性方程进行描述,每种线性划分方式都可以一组对应的线性方程组进行表示。如果没有特别说明的话,本发明实施例所提到的划分方法都属于线性划分。

完全线性划分是特殊的线性划分,对于n个支撑点的支撑点空间,选定n个线性无关的有序向量作为划分超平面的法向量,v1,…,vn,首先用k个以v1为法向量的平行超平面把支撑点空间划分为k个子空间,然后对每个子空间用k个以v2为法向量的平行超平面(作用于不同子空间的平行超平面可能不同)进一步划分为k个子空间,如此类推,直到穷尽n个法向量产生kn个子空间。

具体的,在三维空间中利用3个无关向量(1,0,0),(0,1,0),(0,0,1)对数据进行(3,2)完全线性划分时,先利用(1,0,0)所指示的超平面x1=c1(相当于1*x1+0*x2+0*x3=c1)将空间划分成互不相交的两个子空间。对于两个子空间,分别利用第二个向量(0,1,0)所指示的超平面x2=c21(相当于0*x1+1*x2+0*x3=c21)和x2=c22(相当于0*x1+1*x2+0*x3=c22)分别对上述划分得到的两个子空间进行划分,得到4个互不相交的子空间;最后利用第三个向量(0,0,1)所指示的超平面x3=c31(相当于0*x1+0*x2+1*x3=c31)、x3=c32(相当于0*x1+0*x2+1*x3=c32)、x3=c33(相当于0*x1+0*x2+1*x3=c33)和x3=c34(相当于0*x1+0*x2+1*x3=c34)分别对上述划分得到的4个子空间进行划分,得到8个互不相交的子空间。

s204、统计落入r-邻域的数据的数目。

此步骤就是统计数据集中所有isrn=true的数据,即得到落入r-邻域中的数据数目。

s106、输出落入r-邻域的数据的数目,并根据所述数目输出划分方法的评价结果。

该落入r-邻域的数据的数目即可作为划分方法的性能评价指标,通过所述数目输出划分方法的评价结果。

本发明实施例不需要对数据库中的所有数据进行范围搜索,只需要在创建索引时计算出落入划分边界附近无法被排除的数据个数即可,极大地降低了评价的时间成本和提高了效率。只需要编写一套代码即可对不同的索引方式进行性能的衡量。通过本发明实施例,可以对度量空间划分方式能够在同一的条件下进行比较,受其它因素影响更小,比较结果更加客观。

请参阅图2,本发明实施例还提供一种度量空间划分方式评价装置200,其包括:

获取单元201,用于对数据库中的数据进行度量空间的划分,获取n个法向量;

输入单元202,用于输入n个法向量作为划分超平面的法向量和范围搜索半径r;

支撑点选取单元203,用于利用选点算法选取n个支撑点;

映射单元204,用于以数据到支撑点的距离作为坐标,将度量空间中的数据映射为二维向量数据;

完全划分单元205,用于对数据进行完全划分,并计算落入r-邻域的数据;

评价单元206,用于输出落入r-邻域的数据的数目,并根据所述数目输出划分方法的评价结果。

在一实施例中,所述完全划分单元205包括:

判断单元,用于判断向量组中的向量是否用完,若是则统计落入r-邻域的数据的数目;

计算单元,用于若否则利用法向量和范围搜索半径r计算r-邻域的宽度;

划分单元,用于依次取出法向量对当前子空间进行独立的划分,并标记落入划分边界r邻域的数据;

统计单元,用于统计落入r-邻域的数据的数目。

在一实施例中,所述计算单元包括:

子计算单元,用于按如下公式计算r-邻域的宽度:

其中,ai表示数据到第i个支撑点距离的权值。

在一实施例中,所述划分单元包括:

第一划分单元,用于取出其中一个法向量构造划分超平面,将上一子空间划分成互不相交的多个独立子空间,并对落入r-邻域范围内的数据进行标记;

第二划分单元,用于然后取出下一个法向量构造划分超平面,分别对所述多个独立子空间进行划分,并对落入r-邻域范围内的数据进行标记;

循环单元,用于依次类推,直至用完所有法向量。

在一实施例中,将上一子空间划分成互不相交的两个独立子空间,并对落入r-邻域范围内的数据进行标记。

在一实施例中,所述度量空间为二元组(s,d),其中s是有限非空的数据集合,而d是定义在s上的距离函数。

在一实施例中,所述距离函数满足:

对于任意x,y,s,d(x,y)≥0,并且d(x,y)=0时,x=y;

对于任意x,y,s,d(x,y)=d(y,x);

对于任意x,y,z,s,d(x,y)+d(y,z)≥d(x,z)。

上述装置实施例的具体技术细节与前述方法实施例的内容对应,故此处不再赘述。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的度量空间划分方式评价方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如上所述的度量空间划分方式评价方法。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1