基于K邻域相似性的数据聚类方法、装置和存储介质与流程

文档序号:14872149发布日期:2018-07-07 00:59阅读:151来源:国知局

本发明涉及数据处理技术邻域,尤其涉及一种基于k邻域相似性的数据聚类方法、装置和计算机可读存储介质。



背景技术:

随着数据处理技术的发展,越来越多的数据(比如互联网、物联网产生的大数据)需要进行快速、准确的分类,数据聚类就是这样一种自动进行分类的方法及装置。

目前大多数数据聚类朝着执行效率和有效性两个方向改进。对于执行效率可以通过有效的采样技术使得数据聚类能够很好的处理大规模的数据,而另一方面,聚类的有效性是个更为严重的问题。

本发明人在实施本发明的过程中发现,现有技术中存在以下技术问题:

第一,许多数据聚类方法需要先验知识或者概率分布的假设,而这些在实际应用中往往是无法提前得知的。比如,k均值聚类方法和em最大期望值方法都需要预先知道数据中聚类的个数。

第二,参数调节困难降低了数据聚类的可用性,比如基于密度的dbscan方法,需要预先设半径epsilon和最少数据个数minpts两个参数来定义密度阈值,而这些参数严重依赖于具体的数据,因为数据的密度往往差异很大,而且数据之间距离也会有不同的尺度。

第三,大部分传统的数据聚类只能得到每个数据点所属的聚类,而不能给出聚类之间的层次关系,而现有的层次聚类方法,比如slink,有两个主要的不足之处,时间和空间代价相对较高,且具有明显的“链效应”。



技术实现要素:

本发明实施例提供一种基于k邻域相似性的数据聚类方法、装置和计算机可读存储介质,能有效解决现有技术存在的需要较多假定的前提知识、聚类参数难以设置以及不能得到聚类之间的层次关系的三个主要问题。

本发明一实施例提供一种基于k邻域相似性的数据聚类方法,包括步骤:

s1、对待聚类数据点按照数据点的k邻域最大半径进行升序排序;其中,数据点的k邻域最大半径是指所述数据点的k邻域中离该数据点最大的距离;

s2、对升序排序后的数据点进行第一遍循环,计算所述数据点的k邻域统计特性值,并将计算得到的数据点的k邻域统计特性值和已生成的该数据点所属的邻近聚类的k邻域统计特性值进行比较;若所述数据点的k邻域统计特性值与所述数据点的邻近聚类的k邻域统计特性值的差值在第一阈值delta范围内,则将所述数据点并入所述数据点的邻近聚类中,如果可并入多个邻近聚类,则按照距离从近到远逐个并入直到聚类中数据点个数超过第二阈值nspts;若所述数据点的k邻域统计特性值与所述数据点的邻近聚类的k邻域统计特性值的差值超过第一阈值delta,则生成一个包含所述数据点的新聚类;

s3、所述第一遍循环完成后,对所有聚类中数据点总数小于第二阈值nspts的聚类中的数据点进行第二遍循环,若存在数据点的k邻域统计特性值大于或等于该数据点的k邻域内任一其他数据点的k邻域统计特性值的nsr倍,则将该数据点标记为噪声数据,否则将该数据点并入其距离最近的数据点所属的聚类,nsr>1,nspts>2。

与现有技术相比,本发明实施例提供的基于k邻域相似性的数据聚类方法基于待聚类数据点的k邻域最大半径即按密度对待聚类数据点进行排序,然后对升序排序后的数据点进行第一遍循环,以符合统计相似性的数据点并入到同个聚类中;然后再根据聚类所需规模对聚类密度较小的数据点进行第二遍循环,从而找出所有噪声点以及将非噪声点合并到最近的大密度聚类中,从而实现数据聚类。可见,利用本发明实施例提供的基于k邻域相似性的数据聚类方法进行数据聚类带有如下技术效果:第一,无需预先设定聚类的个数,无需知道数据的概率分布;第二,参数容易设置,且各个参数的设置都与数据的密度分布和距离尺度无关;第三,聚类的形成是由高密度到低密度逐渐合并而成的,在产生聚类的同时给出了聚类之间的层次关系。

作为上述方案的改进,所述数据点的k领域是指距离所述数据点距离最近的k个数据点的集合;其中,k取值范围为5~9。

作为上述方案的改进,每一所述数据点的k邻域统计特性值包括该数据点的k邻域最大半径、k邻域半径均值以及k邻域半径标准差中的至少一种;相应的,所述邻近聚类的k邻域统计特性值包括所述邻近聚类的所有数据点的k邻域最大半径的平均值、所有数据点的k邻域半径均值的平均值以及所有数据点的k邻域半径标准差的平均值中的至少一种。

作为上述方案的改进,每一所述数据点的k邻域统计特性值包括所述数据点的k邻域半径均值以及k邻域半径标准差;在所述步骤s2中,若所述数据点的k邻域统计特性值与所述数据点的邻近聚类的k邻域统计特性值满足下列公式1)和公式2),则认为所述数据点的k邻域统计特性值与所述数据点的邻近聚类s的k邻域统计特性值的差值在第一阈值delta范围内:

公式1)mean(s(m))-delta×std(s(m))≥p(m)≤mean(s(m))+delta×std(s(m));

公式2)mean(s(v))-delta×std(s(v))≥p(v)≤mean(s(v))+delta×std(s(v));

其中,p(m)为数据点p的k邻域半径均值,p(v)为数据点p的k邻域标准差,mean(s(m))为邻近聚类s的所有数据点的k邻域半径均值的平均值,mean(s(v))为邻近聚类s的所有数据点的k邻域半径标准差的平均值,std(s(m))为邻近聚类s的所有数据点的k邻域半径均值的方差,std(s(v))为邻近聚类s的所有数据点的k邻域半径标准差的方差,delta为预设系数。

作为上述方案的改进,第一阈值delta的预设范围通常为1~10。

作为上述方案的改进,在所述步骤s3中,若存在数据点的k邻域统计特性值满足下列公式3),则认为存在数据点的k邻域统计特性值大于或等于该数据点的k邻域内任一其他数据点的k邻域统计特性值的nsr倍:

公式3)p(m)≥q(m)×nsr,q∈nk(p);

其中,p(m)为数据点p的k邻域半径均值,q(m)为数据点q的k邻域半径均值,nk(p)表示数据点p的k邻域,nsr的预设范围通常为3~5。

作为上述方案的改进,在所述步骤s3中,将所有聚类中数据点总数大于或等于第二阈值nspts的聚类定义为显著聚类,并将所有聚类中数据点总数小于第二阈值nspts的聚类定义为非显著聚类;

若存在数据点的k邻域统计特性值小于该数据点的k邻域内任一其他数据点的k邻域统计特性值的nsr倍,则将该数据点并入其距离最近的数据点所属的显著聚类中。

作为上述方案的改进,所述第二阈值nspts可根据所需聚类规模调整。

本发明实施例还提供了一种基于k邻域相似性的数据聚类装置,包括:

数据点排序模块,用于对待聚类数据点按照数据点的k邻域最大半径进行升序排序;其中,数据点的k邻域最大半径是指所述数据点的k邻域中离该数据点最大的距离;

一遍循环模块,用于对升序排序后的所述数据点进行第一遍循环,计算所述数据点的k邻域统计特性值,并将计算得到的所述数据点的k邻域统计特性值和已生成的该数据点所对应的邻近聚类的k邻域统计特性值进行比较;若所述数据点的k邻域统计特性值与该数据点的邻近聚类的k邻域统计特性值的差值在第一阈值delta范围内,则将所述数据点并入所述数据点的邻近聚类中,如果可并入多个邻近聚类,则按照距离从近到远逐个并入直到聚类中数据点个数超过第二阈值nspts;若所述数据点的k邻域统计特性值与所述数据点的邻近聚类的k邻域统计特性值的差值超过第一阈值delta,则生成一个包含所述数据点的新聚类;

二遍循环模块,用于在所述第一遍循环完成后,对所有聚类中数据点总数小于第二阈值nspts的聚类中的数据点进行第二遍循环,若存在数据点的k邻域统计特性值大于或等于该数据点的k邻域内任一其他数据点的k邻域统计特性值的nsr倍,则将该数据点标记为噪声数据,否则将该数据点并入其距离最近的数据点所属的聚类。

与现有技术相比,本发明实施例提供的基于k邻域相似性的数据聚类装置基于待聚类数据点的k邻域最大半径即按密度对待聚类数据点进行排序,然后对升序排序后的数据点进行第一遍循环,以符合统计相似性的数据点并入到同个聚类中;然后再根据聚类所需规模对聚类密度较小的数据点进行第二遍循环,从而找出所有噪声点以及将非噪声点合并到最近的大密度聚类中,进而实现数据聚类。可见,利用本发明实施例提供的基于k邻域相似性的数据聚类方法进行数据聚类带有如下技术效果:第一,无需预先设定聚类的个数,无需知道数据的概率分布;第二,参数容易设置,且各个参数的设置都与数据的密度分布和距离尺度无关;第三,聚类的形成是由高密度到低密度逐渐合并而成的,在产生聚类的同时给出了聚类之间的层次关系。

作为上述方案的改进,所述数据点的k领域是指距离所述数据点距离最近的k个数据点的集合;其中,k取值范围通常为5~9。

作为上述方案的改进,每一所述数据点的k邻域统计特性值包括该数据点的k邻域最大半径、k邻域半径均值以及k邻域半径标准差中的至少一种;相应的,所述邻近聚类的k邻域统计特性值包括所述邻近聚类的所有数据点的k邻域最大半径的平均值、所有数据点的k邻域半径均值的平均值以及所有数据点的k邻域半径标准差的平均值中的至少一种。

作为上述方案的改进,每一所述数据点的k邻域统计特性值包括所述数据点的k邻域半径均值以及k邻域半径标准差;在所述一遍循环模块中,若所述数据点的k邻域统计特性值与所述数据点的邻近聚类的k邻域统计特性值满足下列公式1)和公式2),则认为所述数据点的k邻域统计特性值与所述数据点的邻近聚类s的k邻域统计特性值的差值在第一阈值delta范围内:

公式1)mean(s(m))-delta×std(s(m))≥p(m)≤mean(s(m))+delta×std(s(m));

公式2)mean(s(v))-delta×std(s(v))≥p(v)≤mean(s(v))+delta×std(s(v));

其中,p(m)为数据点p的k邻域半径均值,p(v)为数据点p的k邻域标准差,mean(s(m))为邻近聚类s的所有数据点的k邻域半径均值的平均值,mean(s(v))为邻近聚类s的所有数据点的k邻域半径标准差的平均值,std(s(m))为邻近聚类s的所有数据点的k邻域半径均值的方差,std(s(v))为邻近聚类s的所有数据点的k邻域半径标准差的方差,delta为预设系数;delta的预设范围通常为1~10。

作为上述方案的改进,在所述二遍循环模块中,若存在数据点的k邻域统计特性值满足下列公式3),则认为存在数据点的k邻域统计特性值大于或等于该数据点的k邻域内任一其他数据点的k邻域统计特性值的nsr倍:

公式3)p(m)≥q(m)×nsr,q∈nk(p);

其中,p(m)为数据点p的k邻域半径均值,q(m)为数据点q的k邻域半径均值,nk(p)表示数据点p的k邻域,nsr=n,nsr的预设范围通常为3~5。

作为上述方案的改进,在所述二遍循环模块中,将所有聚类中数据点总数大于或等于第二阈值nspts的聚类定义为显著聚类,并将所有聚类中数据点总数小于第二阈值nspts的聚类定义为非显著聚类;

若存在数据点的k邻域统计特性值小于该数据点的k邻域内任一其他数据点的k邻域统计特性值的nsr倍,则将该数据点并入其距离最近的数据点所属的显著聚类中。

本发明实施例还提供了一种基于k邻域相似性的数据聚类装置,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上任意实施例所述的基于k邻域相似性的数据聚类方法。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上任意实施例所述的基于k邻域相似性的数据聚类方法。

附图说明

图1是本发明一实施例提供的一种基于k邻域相似性的数据聚类方法的流程示意图。

图2(a)~2(d)显示了利用本发明实施例提供的基于k邻域相似性的数据聚类方法进行数据聚类的效果流程图。

图3(a)~3(h)显示了利用本发明实施例提供的基于k邻域相似性的数据聚类方法给定的不同形状的数据集进行数据聚类的结果。

图4是本发明一实施例提供的一种基于k邻域相似性的数据聚类装置的结构示意图。

图5是本发明另一实施例提供的一种基于k邻域相似性的数据聚类装置的结构示意图。

具体实施方式

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

本发明实施例提供一种基于k邻域相似性的数据聚类方法及对应的装置,其中,本发明实施例的聚类定义是基于统计数据点的。数据集群(聚类)通常被定义为类似数据的聚合。在本发明实施例中,相似度的概念可以与聚类的统计特性和数据的密度相关。参考图2(a)~图2(d),如图2(a)所示,数据点分布在数据空间的三个区域中。如图2(b)所示,可以将数据库绘制为数据密度表面,在三个簇的中心上具有大约三个峰,具有附加的密度轴。数据库以及数据密度面可以分为相干部分,即数据块,由图2(c)中所示的密度轮廓表示。如果收集沿密度向下方向的数据点,数据聚类将逐渐出现。如图2(c)所示,当所述连接聚类的尺寸小于期望值时,将所述连接聚类合并是合理的,且显著的聚类不会相互合并。如图2(d)所示,生成最终聚类结果。

本发明将通过多个实施例来对本发明数据聚类方法及装置进行说明。在展开说明前,首先对本发明实施例中出现的各个术语进行相关定义:

定义1(k邻域):一个数据点的k邻域是指离该数据点最近的k个数据点的集合。

例如:用集合nk(p)表示数据点p的k邻域,集合nk(p)包括k个数据点,则该集合中任意数据点q满足:dist(p,q)≤dist(p,o),其中,dist(p,q)表示数据点p和数据点q之间的距离,且数据点o不在集合nk(p)内。

定义2(k邻域最大半径):一个数据点的k邻域最大半径是指该数据点的k邻域中离该点最大的距离。

例如:用rk(p)表示数据点p的k邻域最大半径,则rk(p)满足:rk(p)=max(dist(p,q)),q∈nk(p)。

定义3(k邻域半径均值):一个数据点的k邻域半径均值是指该数据点的k邻域中两两数据点距离的均值。

例如:用mk(p)表示数据点p的k邻域半径均值,则mk(p)=mean(dist(a,b)),其中a,b∈nk(p)。mean(dist(a,b))表示nk(p)内任意两个数据点a和数据点b之间的距离的平均值。

定义4(k邻域半径标准差):一个数据点的k邻域半径标准差是指该数据点的k领域中两两数据点距离的标准差。

例如:用vk(p)表示数据点p的k邻域半径标准差,则vk(p)=std(dist(a,b)),其中a,b∈nk(p)。std(dist(a,b))表示nk(p)内任意两个数据点a和数据点b之间的距离的方差。

定义5(统计数据点):一个数据点的统计数据点是指给数据点附加该数据点的k领域统计特性值,包括(但不限于)k邻域最大半径、k邻域半径均值、k邻域半径标准差,形成的数据。

例如,可用p(r,m,v)表示数据点p的k领域统计特性值。其中,p(r)表示数据点p的k邻域最大半径值,p(m)表示数据点p的k邻域半径均值,p(v)表示数据点p的k邻域半径标准差值。

定义6(统计相似性):如果一个数据点集合的每个统计特征值的均值和一个数据点的对应的统计特征值的差小于delta个单位(通常以该数据点集统计特征值的标准差为单位),则称该数据点集合具有统计相似性。

例如:用s(r,m,v)表示数据点集合的统计特征值,若存在数据点p的p(r,m,v)满足以下两个条件:

条件1)mean(s(m))-delta×std(s(m))≥p(m)≤mean(s(m))+delta×std(s(m));

条件2)mean(s(v))-delta×std(s(v))≥p(v)≤mean(s(v))+delta×std(s(v));

则称该数据点集合s具有统计相似性。其中,delta为阈值常数。

定义7(聚类合并):两个数据点集合c1,c2为统计相似性集合,如果存在一个数据点p满足以下条件:

1)数据点p和数据点集合c1具有统计相似性;

2)数据点p和数据点集合c2具有统计相似性;

3)数据点p的k领域半径均值m小于或等于c1中最小m的nsr倍,nsr为可调参数,或者c1中数据点个数小于显著性参数nspts;

4)数据点p的k领域半径均值m小于或等于c2中最小m的nsr倍,nsr为可调参书,或者c2中数据点个数小于显著性参数nspts。

则可以将两个数据点集合c1,c2合并为一个联合统计相似性集合。

定义8(显著聚类):一个数据聚类是显著聚类,当且仅当该数据聚类包含的数据点个数大于或等于一个显著性参数nspts。

定义9(噪声点):当一个数据点的k领域半径均值m大于或等于它k领域中任意属于某个显著聚类的数据点的k领域半径均值m值的nsr倍,则该数据点为噪声点。

例如:当存在数据点p,p(m)≥q(m)×nsr,q∈nk(p),而且数据点q被包括在任何显著聚类中,则数据点p为噪声点。

参见图1,是本发明一实施例提供的一种基于k邻域相似性的数据聚类方法,包括步骤s101~s103:

s101、对待聚类数据点按照数据点的k邻域最大半径进行升序排序;

其中,每一数据点的k邻域最大半径是指所述数据点的k邻域中离该数据点最大的距离;所述数据点的k领域是指距离所述数据点距离最近的k个数据点的集合。在本实施例中,k取值范围通常为5~9。

s102、对升序排序后的数据点进行第一遍循环,计算所述数据点的k邻域统计特性值,并将计算得到的数据点的k邻域统计特性值和已生成的该数据点所属的邻近聚类的k邻域统计特性值进行比较;若所述数据点的k邻域统计特性值与所述数据点的邻近聚类的k邻域统计特性值的差值在第一阈值delta范围内,则将所述数据点并入所述数据点的邻近聚类中,如果可并入多个邻近聚类,则按照距离从近到远逐个并入直到聚类中数据点个数超过第二阈值nspts;若所述数据点的k邻域统计特性值与所述数据点的邻近聚类的k邻域统计特性值的差值超过第一阈值delta,则生成一个包含所述数据点的新聚类。

s103、所述第一遍循环完成后,对所有聚类中数据点总数小于第二阈值nspts的聚类中的数据点进行第二遍循环,若存在数据点的k邻域统计特性值大于或等于该数据点的k邻域内任一其他数据点的k邻域统计特性值的nsr倍,则将该数据点标记为噪声数据,否则将该数据点并入其距离最近的数据点所属的聚类。

其中,在本实施例中,nsr>1,nspts>2。每一所述数据点的k邻域统计特性值包括该数据点的k邻域最大半径、k邻域半径均值以及k邻域半径标准差中的至少一种;相应的,所述邻近聚类的k邻域统计特性值包括所述邻近聚类的所有数据点的k邻域最大半径的平均值、所有数据点的k邻域半径均值的平均值以及所有数据点的k邻域半径标准差的平均值中的至少一种。

优选的,在所述步骤s102中,每一所述数据点的k邻域统计特性值包括所述数据点的k邻域半径均值以及k邻域半径标准差。若所述数据点的k邻域统计特性值与所述数据点的邻近聚类的k邻域统计特性值满足下列公式1)和公式2),则认为所述数据点的k邻域统计特性值与所述数据点的邻近聚类s的k邻域统计特性值的差值在第一阈值delta范围内:

公式1)mean(s(m))-delta×std(s(m))≥p(m)≤mean(s(m))+delta×std(s(m));

公式2)mean(s(v))-delta×std(s(v))≥p(v)≤mean(s(v))+delta×std(s(v));

其中,p(m)为数据点p的k邻域半径均值,p(v)为数据点p的k邻域标准差,mean(s(m))为邻近聚类s的所有数据点的k邻域半径均值的平均值,mean(s(v))为邻近聚类s的所有数据点的k邻域半径标准差的平均值,std(s(m))为邻近聚类s的所有数据点的k邻域半径均值的方差,std(s(v))为邻近聚类s的所有数据点的k邻域半径标准差的方差,delta为预设系数。在本实施例中,第一阈值delta的预设范围通常为1~10。

优选的,在所述步骤s103中,若存在数据点的k邻域统计特性值满足下列公式3),则认为存在数据点的k邻域统计特性值大于或等于该数据点的k邻域内任一其他数据点的k邻域统计特性值的nsr倍:

公式3)p(m)≥q(m)×nsr,q∈nk(p);

其中,p(m)为数据点p的k邻域半径均值,q(m)为数据点q的k邻域半径均值,nk(p)表示数据点p的k邻域,nsr的预设范围通常为3~5。

进一步的,本实施例将所有聚类中数据点总数大于或等于第二阈值nspts的聚类定义为显著聚类,并将所有聚类中数据点总数小于第二阈值nspts的聚类定义为非显著聚类,其中,所述第二阈值nspts可根据所需聚类规模调整。在所述步骤s3中,若存在数据点的k邻域统计特性值小于该数据点的k邻域内任一其他数据点的k邻域统计特性值的nsr倍,则将该数据点并入其距离最近的数据点所属的显著聚类中。

可见,本发明实施例提供的基于k邻域相似性的数据聚类方法基于待聚类数据点的k邻域最大半径即按密度对待聚类数据点进行排序,然后对升序排序后的数据点进行第一遍循环,以符合统计相似性的数据点并入到同个聚类中;然后再根据聚类所需规模对聚类密度较小的数据点进行第二遍循环,从而找出所有噪声点以及将非噪声点合并到最近的大密度聚类中,从而实现数据聚类。可见,利用本发明实施例提供的基于k邻域相似性的数据聚类方法进行数据聚类带有如下技术效果:第一,无需预先设定聚类的个数,无需知道数据的概率分布;第二,参数容易设置,k的取值一般为5-9,delta的取值一般为1-10,nsr的取值一般为3-5,显著性参数nspts的取值可根据需要聚类规模自行调节,且各个参数的设置都与数据的密度分布和距离尺度无关;第三,聚类的形成是由高密度到低密度逐渐合并而成的,在产生聚类的同时给出了聚类之间的层次关系。

图3(a)~图3(h)显示了利用本发明实施例提供的基于k邻域相似性的数据聚类方法对给定的不同形状的数据集进行数据聚类的结果。如图3(a)所示,采用本实施例提供的聚类方法能够克服链接效应,并正确识别出由点链链接的两个群集。图3(b)~3(h)显示使用本实施例的聚类方法正确识别出多个不同形状的聚类。如图3(b)所示,采用本实施例的聚类方法正确发现了密度变化的两个重叠聚类:密集集群和周围稀疏集群。如图3(d)所示,噪声点被正确识别。在这些给定的数据集上,通过本实施例的聚类方法发现的群集的数目精确地等于所期望的群集数量。可见,利用本实施例提供的基于k邻域相似性的数据聚类方法具有处理任意形状的,密度变化的以及带有噪声点的数据集的能力。

参见图4,是本发明一实施例提供的基于k邻域相似性的数据聚类装置的结构示意图,包括:

数据点排序模块401,用于对待聚类数据点按照数据点的k邻域最大半径进行升序排序;其中,每一数据点的k邻域最大半径是指所述数据点的k邻域中离该数据点最大的距离;所述数据点的k领域是指距离所述数据点距离最近的k个数据点的集合;其中,k取值范围为5~9。

一遍循环模块402,用于对升序排序后的所述数据点进行第一遍循环,计算所述数据点的k邻域统计特性值,并将计算得到的所述数据点的k邻域统计特性值和已生成的该数据点所对应的邻近聚类的k邻域统计特性值进行比较;若所述数据点的k邻域统计特性值与该数据点的邻近聚类的k邻域统计特性值的差值在第一阈值delta范围内,则将所述数据点并入所述数据点的邻近聚类中,如果可并入多个邻近聚类,则按照距离从近到远逐个并入直到聚类中数据点个数超过第二阈值nspts;若所述数据点的k邻域统计特性值与所述数据点的邻近聚类的k邻域统计特性值的差值超过第一阈值delta,则生成一个包含所述数据点的新聚类;

二遍循环模块403,用于在所述第一遍循环完成后,对所有聚类中数据点总数小于第二阈值nspts的聚类中的数据点进行第二遍循环,若存在数据点的k邻域统计特性值大于或等于该数据点的k邻域内任一其他数据点的k邻域统计特性值的nsr倍,则将该数据点标记为噪声数据,否则将该数据点并入其距离最近的数据点所属的聚类。

在本实施例中,任一所述数据点的k邻域统计特性值包括该数据点的k邻域最大半径、k邻域半径均值以及k邻域半径标准差中的至少一种;相应的,所述邻近聚类的k邻域统计特性值包括所述邻近聚类的所有数据点的k邻域最大半径的平均值、所有数据点的k邻域半径均值的平均值以及所有数据点的k邻域半径标准差的平均值中的至少一种。

优选的,在所述一遍循环模块402中,每一所述数据点的k邻域统计特性值包括所述数据点的k邻域半径均值以及k邻域半径标准差;若所述数据点的k邻域统计特性值与所述数据点的邻近聚类的k邻域统计特性值满足下列公式1)和公式2),则认为所述数据点的k邻域统计特性值与所述数据点的邻近聚类s的k邻域统计特性值的差值在第一阈值delta范围内:

公式1)mean(s(m))-delta×std(s(m))≥p(m)≤mean(s(m))+delta×std(s(m));

公式2)mean(s(v))-delta×std(s(v))≥p(v)≤mean(s(v))+delta×std(s(v));

其中,p(m)为数据点p的k邻域半径均值,p(v)为数据点p的k邻域标准差,mean(s(m))为邻近聚类s的所有数据点的k邻域半径均值的平均值,mean(s(v))为邻近聚类s的所有数据点的k邻域半径标准差的平均值,std(s(m))为邻近聚类s的所有数据点的k邻域半径均值的方差,std(s(v))为邻近聚类s的所有数据点的k邻域半径标准差的方差,delta为预设系数;delta的预设范围通常为1~10。

优选的,在所述二遍循环模块403中,若存在数据点的k邻域统计特性值满足下列公式3),则认为存在数据点的k邻域统计特性值大于或等于该数据点的k邻域内任一其他数据点的k邻域统计特性值的nsr倍:

公式3)p(m)≥q(m)×nsr,q∈nk(p);

其中,p(m)为数据点p的k邻域半径均值,q(m)为数据点q的k邻域半径均值,nk(p)表示数据点p的k邻域,nsr的预设范围通常为3~5。

进一步的,在所述二遍循环模块403中,将所有聚类中数据点总数大于或等于第二阈值nspts的聚类定义为显著聚类,并将所有聚类中数据点总数小于第二阈值nspts的聚类定义为非显著聚类;

若存在数据点的k邻域统计特性值小于该数据点的k邻域内任一其他数据点的k邻域统计特性值的nsr倍,则将该数据点并入其距离最近的数据点所属的显著聚类中。

可见,本发明实施例提供的基于k邻域相似性的数据聚类装置基于待聚类数据点的k邻域最大半径即按密度对待聚类数据点进行排序,然后对升序排序后的数据点进行第一遍循环,以符合统计相似性的数据点并入到同个聚类中;然后再根据聚类所需规模对聚类密度较小的数据点进行第二遍循环,从而找出所有噪声点以及将非噪声点合并到最近的大密度聚类中,从而实现数据聚类。可见,利用本发明实施例提供的基于k邻域相似性的数据聚类方法进行数据聚类带有如下技术效果:第一,无需预先设定聚类的个数,无需知道数据的概率分布;第二,参数容易设置,k的取值一般为5-9,delta的取值一般为1-10,nsr的取值一般为3-5,显著性参数nspts的取值可根据需要聚类规模自行调节,且各个参数的设置都与数据的密度分布和距离尺度无关;第三,聚类的形成是由高密度到低密度逐渐合并而成的,在产生聚类的同时给出了聚类之间的层次关系。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上任一实施例所述的基于k邻域相似性的数据聚类方法。

参见图5,是本发明一实施例提供的基于k邻域相似性的数据聚类装置的示意图。该实施例的基于k邻域相似性的数据聚类装置包括:处理器501、存储器502以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如上述的基于k邻域相似性的数据聚类程序。所述处理器执行所述计算机程序时实现上述各个基于k邻域相似性的数据聚类方法实施例中的步骤,例如图1所示的基于k邻域相似性的数据聚类步骤。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。

示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述基于k邻域相似性的数据聚类装置中的执行过程。

所述基于k邻域相似性的数据聚类装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述基于k邻域相似性的数据聚类装置可包括,但不仅限于,处理器、存储器。本邻域技术人员可以理解,所述示意图仅仅是基于k邻域相似性的数据聚类装置的示例,并不构成对基于k邻域相似性的数据聚类装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述基于k邻域相似性的数据聚类装置还可以包括输入输出设备、网络接入设备、总线等。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述基于k邻域相似性的数据聚类装置的控制中心,利用各种接口和线路连接整个基于k邻域相似性的数据聚类装置的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述基于k邻域相似性的数据聚类装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

其中,所述基于k邻域相似性的数据聚类装置集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本邻域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述是本发明的优选实施方式,应当指出,对于本技术邻域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

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