CN109753986A - 一种基于数据块的索引信息的聚类方法和装置 - Google Patents
一种基于数据块的索引信息的聚类方法和装置 Download PDFInfo
- Publication number
- CN109753986A CN109753986A CN201711089425.4A CN201711089425A CN109753986A CN 109753986 A CN109753986 A CN 109753986A CN 201711089425 A CN201711089425 A CN 201711089425A CN 109753986 A CN109753986 A CN 109753986A
- Authority
- CN
- China
- Prior art keywords
- data
- data block
- blocks
- value
- seed point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000004590 computer program Methods 0.000 claims description 6
- 241000208340 Araliaceae Species 0.000 claims 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims 1
- 235000003140 Panax quinquefolius Nutrition 0.000 claims 1
- 235000008434 ginseng Nutrition 0.000 claims 1
- 230000005055 memory storage Effects 0.000 claims 1
- 238000004422 calculation algorithm Methods 0.000 description 41
- 238000003064 k means clustering Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000015271 coagulation Effects 0.000 description 2
- 238000005345 coagulation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于数据块的索引信息的聚类方法和装置,获取第一数据中每个数据块的索引信息,其中,所述索引信息中包括所述每个数据块的数值范围、每个数据块的集中度参数值和每个数据块的数据平均值;将所述第一数据中的数据的数值范围分为K个数值范围;基于每个数据块的数值范围与所述K个数值范围的从属关系,获取与所述K个数值范围一一对应的K个数据块集合;基于所述每个数据块的集中度参数值和所述每个数据块的数据平均值,对所述K个数据块集合中每个数据块集合完成聚类,获得所述K个数据块集合中每个数据块集合中的第一种子点。通过采用该技术方案,提高了进行聚类时的运算效率。
Description
技术领域
本发明涉及聚类算法领域,尤其涉及一种基于数据块的索引信息的聚类方法和装置。
背景技术
目前,有大量的聚类算法。而对于具体应用,聚类算法的选择取决于数据的类型、聚类的目的。如果聚类分析被用作描述或探查的工具,可以对同样的数据尝试多种算法,以发现数据可能揭示的结果。
主要的聚类算法可以划分为如下几类:划分方法、层次方法、基于密度的方法、基于网格的方法以及基于模型的方法。每一类中都存在着得到广泛应用的算法,例如:划分方法中的k-means聚类算法、层次方法中的凝聚型层次聚类算法、基于模型方法中的神经网络聚类算法等。
目前,聚类问题的研究不仅仅局限于上述的硬聚类,即每一个数据只能被归为一类,模糊聚类也是聚类分析中研究较为广泛的一个分支。模糊聚类通过隶属函数来确定每个数据隶属于各个簇的程度,而不是将一个数据对象硬性地归类到某一簇中。目前已有很多关于模糊聚类的算法被提出,如著名的FCM算法等。
对于K-means聚类算法,其是将样本聚类成k个簇(cluster),具体算法描述如下:
(1)随机选取K个聚类质心点(Cluster Centroids)为μ1,μ2,...,μk,∈Rn。
(2)重复下面过程指导收敛{
对于每一个样例i,计算其应该属于的类
对于每一个类j,重新计算该类的质心
}
如图1所示的现有技术中利用K-means聚类算法的简易图示。聚类的目的是按照预设的种子点(如图1的灰色点表示)的位置,要保证种子点所在的坐标位置能够让数据(图1中的ABCDE)能均匀分布在其周围。(如采用标准格式来解答聚类,则是需要找到种子点,让数据通过一个运算或者函数,使得结果能够满足符合在种子点周围均匀分布)
然后,K-Means的算法如下:(假设上述的“让数据通过一个运算或者函数”中的函数为求距离的函数),随机在图中取K(这里K=2)个种子点(参见图1中的第一步)。
然后对图中的所有点求到这K个种子点的距离,假如点Pi离种子点Si最近,那么Pi属于Si点群。(图1中的第二步,可以看到A,B属于上面的种子点,C,D,E属于下面中部的种子点)。
接下来,移动种子点到属于它的“点群”的中心。(参见图1中的第三步)。
然后重复第二和第三步,直到种子点的坐标位置没有移动,即种子点的数值不再变化(可以看到图中的第四步上面的种子点聚合了A,B,C,下面的种子点聚合了D,E)。
对于层次聚类算法,假设有N个待聚类的样本,对于层次聚类来说,基本步骤就是:
步骤一:(初始化)把每个样本归为一类,计算每两个类之间的距离,也就是样本与样本之间的相似度;
步骤二,寻找各个类之间最近的两个类,把他们归为一类(这样类的总数就少了一个);
步骤三,重新计算新生成的这个类与各个旧类之间的相似度;
重复步骤二和步骤三直到所有样本点都归为一类,结束。
整个聚类过程其实是建立了一棵树,在建立的过程中,可以通过在第二步上设置一个阈值,当最近的两个类的距离大于这个阈值,则认为迭代可以终止。另外关键的一步就是第三步,如何判断两个类之间的相似度有不少种方法。这里介绍一下三种:
Single Linkage:又叫做nearest-neighbor,就是取两个类中距离最近的两个样本的距离作为这两个集合的距离,也就是说,最近两个样本之间的距离越小,这两个类之间的相似度就越大。容易造成一种叫做Chaining的效果,两个cluster明明从“大局”上离得比较远,但是由于其中个别的点距离比较近就被合并了,并且这样合并之后Chaining效应会进一步扩大,最后会得到比较松散的cluster。
Complete Linkage:这个则完全是Single Linkage的反面极端,取两个集合中距离最远的两个点的距离作为两个集合的距离。其效果也是刚好相反的,限制非常大,两个cluster即使已经很接近了,但是只要有不配合的点存在,就顽固到底,老死不相合并,也是不太好的办法。这两种相似度的定义方法的共同问题就是指考虑了某个有特点的数据,而没有考虑类内数据的整体特点。
Average-linkage:这种方法就是把两个集合中的点两两的距离全部放在一起求一个平均值,相对也能得到合适一点的结果。Average-Linkage的一个变种就是取两两距离的中值,与取均值相比更加能够解除个别偏离样本对结果的干扰。
另外除了上述的凝聚型层次聚类,还有一种与其相反的分列式层次聚类,与上述的合并完全相反,是合并。由于原理很相似,在此不再展开。
由此看出层次聚类虽然不需要确定分类数,但是一旦一个分裂或者合并被执行,就不能修正,聚类质量受限制。
可见,现有技术中的聚类算法,当需要聚类的数据很多时,运算效率和聚类质量很低,导致整个计算稳定性差。
发明内容
本发明实施例通过提供一种基于数据块的索引信息的聚类方法和装置,用于解决现有技术中聚类算法,当需要聚类的数据很多时,运算效率和聚类质量很低,导致整个计算过程稳定性差的技术问题。
第一方面,本发明一实施例提供了一种基于数据块的索引信息的聚类方法,所述方法包括:
获取第一数据中每个数据块的索引信息,其中,所述索引信息中包括所述每个数据块的数值范围、每个数据块的集中度参数值和每个数据块的数据平均值;
将所述第一数据中的数据的数值范围分为K个数值范围;
基于所述每个数据块的数值范围与所述K个数值范围的从属关系,获取与所述K个数值范围一一对应的K个数据块集合;
基于所述每个数据块的集中度参数值和所述每个数据块的数据平均值,对所述K个数据块集合中每个数据块集合完成聚类,获得所述K个数据块集合中每个数据块集合中的第一种子点。
可选的,所述基于所述每个数据块的集中度参数值和所述每个数据块的数据平均值,对所述K个数据块集合中每个数据块集合完成聚类,获得所述K个数据块集合中每个数据块集合中的第一种子点,包括:
分别对所述K个数据块集合中每个数据块集合执行以下操作,获得所述K个数据块集合中每个数据块集合中的第一种子点:
针对确定的一个数据块集合中的每个数据块的集中度参数值的排序,获取所述一个数据块集合中集中度最高的数据块;
获取所述集中度最高的数据块中的第二种子点;
基于所述一个数据块集合中每个数据块的数据平均值与所述第二种子点的数据值之差的绝对值,对所述第二种子点的数据值进行迭代更新,完成所述一个数据块集合的聚类,获取所述一个数据块集合中的第一种子点。
可选的,在所述基于所述每个数据块的集中度参数值和所述每个数据块的数据平均值,对所述K个数据块集合中每个数据块集合完成聚类,获得所述K个数据块集合中每个数据块集合中的第一种子点之后,所述方法还包括:
基于第二数据中每个数据的值所属的所述K个数值范围,将所述第二数据中分别属于所述K个数值范围的数据,加入与所述K个数值范围中每个数值范围对应的数据块集合,获得K个数据集合,其中,所述第二数据为所述第一数据中除K个数据块集合中数据之外的数据。
可选的,在所述基于第二数据中每个数据的值所属的所述K个数值范围,将所述第二数据中分别属于所述K个数值范围的数据加入与所述K个数值范围中每个数值范围对应的数据块集合,获得K个数据集合之后,所述方法还包括:
针对所述K个数据集合中的每个数据集合,执行以下操作:
基于一个数据集合中每个数据的值与所述第一种子点的数据值之差的绝对值,对所述第一种子点的数据值进行迭代更新,完成所述一个数据集合的聚类,获取所述一个数据集合中的第三种子点。
可选的,在所述基于所述每个数据块的集中度参数值和所述每个数据块的数据平均值,对所述K个数据块集合中每个数据块集合完成聚类,获得所述K个数据块集合中每个数据块集合中的第一种子点之后,所述方法还包括:
针对第二数据和所述K个数据块集合进行凝聚型层次聚类,从而对所述K个数据块集合中的数据分别进行扩充,获取K个数据集合,其中,所述第二数据为所述第一数据中除K个数据块集合中数据之外的数据。
可选的,在所述针对第二数据和所述K个数据块集合进行凝聚型层次聚类,从而对所述K个数据块集合中的数据分别进行扩充,获取K个数据集合之后,所述方法还包括:
针对所述K个数据集合中的每个数据集合,执行以下操作:基于一个数据集合中每个数据的值与所述第一种子点的数据值之差的绝对值,对所述第一种子点的数据值进行迭代更新,完成所述一个数据集合的聚类,获取所述一个数据集合中的第四种子点。
第二方面,本发明一实施例提供了一种基于数据块的索引信息的聚类装置,所述装置包括:
第一获取模块,用于获取第一数据中每个数据块的索引信息,其中,所述索引信息中包括所述每个数据块的数值范围、每个数据块的集中度参数值和每个数据块的数据平均值;
划分模块,用于将所述第一数据中的数据的数值范围分为K个数值范围;
第二获取模块,用于基于所述每个数据块的数值范围与所述K个数值范围的从属关系,获取与所述K个数值范围一一对应的K个数据块集合;
聚类模块,用于基于所述每个数据块的集中度参数值和所述每个数据块的数据平均值,对所述K个数据块集合中每个数据块集合完成聚类,获得所述K个数据块集合中每个数据块集合中的第一种子点。
可选的,所述聚类模块具体用于:
分别对所述K个数据块集合中每个数据块集合执行以下操作,获得所述K个数据块集合中每个数据块集合中的第一种子点:
针对确定的一个数据块集合中的每个数据块的集中度参数值的排序,获取所述一个数据块集合中集中度最高的数据块;
获取所述集中度最高的数据块中的第二种子点;
基于所述一个数据块集合中每个数据块的数据平均值与所述第二种子点的数据值之差的绝对值,对所述第二种子点的数据值进行迭代更新,完成所述一个数据块集合的聚类,获取所述一个数据块集合中的第一种子点。
可选的,所述装置还包括:
第三获取模块,用于在所述基于所述每个数据块的集中度参数值和所述每个数据块的数据平均值,对所述K个数据块集合中每个数据块集合完成聚类,获得所述K个数据块集合中每个数据块集合中的第一种子点之后,基于第二数据中每个数据的值所属的所述K个数值范围,将所述第二数据中分别属于所述K个数值范围的数据,加入与所述K个数值范围中每个数值范围对应的数据块集合,获取K个数据集合,其中,所述第二数据为所述第一数据中除K个数据块集合中数据之外的数据。
可选的,所述装置还包括:
第四获取模块,用于在所述基于第二数据中每个数据的值所属的所述K个数值范围,将所述第二数据中分别属于所述K个数值范围的数据加入与所述K个数值范围中每个数值范围对应的数据块集合,获得K个数据集合之后,针对所述K个数据集合中的每个数据集合,执行以下操作:
基于一个数据集合中每个数据的值与所述第一种子点的数据值之差的绝对值,对所述第一种子点的数据值进行迭代更新,完成所述一个数据集合的聚类,获取所述一个数据集合中的第三种子点。
可选的,所述装置还包括:
第五获取模块,用于在所述基于所述每个数据块的集中度参数值和所述每个数据块的数据平均值,对所述K个数据块集合中每个数据块集合完成聚类,获得所述K个数据块集合中每个数据块集合中的第一种子点之后,针对第二数据和所述K个数据块集合进行凝聚型层次聚类,从而对所述K个数据块集合中的数据分别进行扩充,获取K个数据集合,其中,所述第二数据为所述第一数据中除K个数据块集合中数据之外的数据。
可选的,所述装置还包括:
第六获取模块,用于在所述针对第二数据和所述K个数据块集合进行凝聚型层次聚类,从而对所述K个数据块集合中的数据分别进行扩充,获取K个数据集合之后,针对所述K个数据集合中的每个数据集合,执行以下操作:基于一个数据集合中每个数据的值与所述第一种子点的数据值之差的绝对值,对所述第一种子点的数据值进行迭代更新,完成所述一个数据集合的聚类,获取所述一个数据集合中的第四种子点。
第三方面,本发明一实施例提供了一种基于数据块的索引信息的聚类装置,所述装置包括:
至少一个处理器,以及
与所述至少一个处理器连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如第一方面实施例所述的方法。
第四方面,本发明一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面实施例所述方法的步骤。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
通过采用本发明的技术方案,能够通过块索引信息,得到一个相对准确的种子点,继而减少聚类算法中种子点更新时的迭代次数,提高运算效率和聚类质量,保证了整个计算过程的稳定性。
附图说明
图1为现有技术中利用K-means聚类算法的简易示意图;
图2为本发明实施例提供的基于数据块的索引信息的聚类方法的流程图;
图3为本发明实施例提供的基于数据块的索引信息的聚类装置的示意图。
具体实施方式
为了解决上述技术问题,本发明实施例中的技术方案的总体思路如下:一种基于数据块的索引信息的聚类方法和装置,获取第一数据中每个数据块的索引信息,其中,所述索引信息中包括所述每个数据块的数值范围、每个数据块的集中度参数值和每个数据块的数据平均值;将所述第一数据中的数据的数值范围分为K个数值范围;基于每个数据块的数值范围与所述K个数值范围的从属关系,获取与所述K个数值范围一一对应的K个数据块集合;基于所述每个数据块的集中度参数值和所述每个数据块的数据平均值,对所述K个数据块集合中每个数据块集合完成聚类,获得所述K个数据块集合中每个数据块集合中的第一种子点。通过采用该技术方案,提高了进行聚类时的运算效率。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
如图2所示,本发明实施例一提供了一种基于数据块的索引信息的聚类方法,所述方法包括:
S101,获取第一数据中每个数据块的索引信息,其中,所述索引信息中包括所述每个数据块的数值范围、每个数据块的集中度参数值和每个数据块的数据平均值。
S102,将所述第一数据中的数据的数值范围分为K个数值范围。
S103,基于所述每个数据块的数值范围与所述K个数值范围的从属关系,获取与所述K个数值范围一一对应的K个数据块集合。
S104,基于所述每个数据块的集中度参数值和所述每个数据块的数据平均值,对所述K个数据块集合中每个数据块集合完成聚类,获得所述K个数据块集合中每个数据块集合中的第一种子点。
在执行步骤S101之前,可以针对需要聚类的数据建立数据块(block,一个数据块中包括多个数据)的索引信息,该索引信息是为了描述每个数据块中的数据的特性,例如,索引信息可以包括每个数据块的数值范围、每个数据块的集中度参数值和每个数据块的数据平均值。根据实际运算的需要,索引信息中也可以包括其他的能够表征每个数据块的特性的信息,例如每个数据块中数据的最大值、最小值,每个数据块中数据的相似度等。
在建立需要聚类的数据的索引信息后,执行步骤S101,对于步骤S101,需要聚类的数据例如是第一数据,获取已建立的第一数据中每个数据块的索引信息,这样更利于提高完成聚类时获取种子点的效率。
在执行完步骤S101之后,继续执行步骤S102,具体地,例如采用K-means算法中给出的K值,将第一数据中的数据的数值范围分成K份。另外,步骤S101和步骤S102在执行时并没有严格的先后顺序,也可以先执行步骤S102,再执行步骤S101,或者同时执行步骤S101和S102。另外,步骤S102和针对需要聚类的数据建立数据块(block)的索引信息的这个步骤也没有严格的执行的先后关系。
在获取索引信息且第一数据中的数据的数值范围分为K个数值范围后,执行步骤S103,步骤S103具体包括:
基于每个数据块的数值范围与所述K个数值范围的从属关系,获取与所述K个数值范围一一对应的K个数据块集合,其中K为大于等于1的整数。
例如对于第一数据中的第一个数据块的数值范围,如果其属于第i个数值范围,则第一个数据块属于第i个数据块集合,即数值范围属于第i个数值范围的数据块属于第i个数据块集合。据此,对第一数据中的所有数据块进行分类,对于数值范围不属于K个数值范围中任一数值范围的数据块,其属于第二数据,即第二数据为所述第一数据中除K个数据块集合中数据之外的数据,其中,i大于等于1且小于等于K。
执行完步骤S103之后,继续执行步骤S104,步骤S104具体包括:
分别对所述K个数据块集合中每个数据块集合执行以下操作,获得所述K个数据块集合中每个数据块集合中的第一种子点:
针对确定的一个数据块集合中的每个数据块的集中度参数值的排序,获取所述一个数据块集合中集中度最高的数据块;其中,数据块的集中度参数值可以以每单位维度上该数据块包括的数据量来衡量;
获取所述集中度最高的数据块中的第二种子点;其中,第二种子点可以为随机获取的种子点;
基于所述一个数据块集合中每个数据块的数据平均值与所述第二种子点的数据值之差的绝对值,对所述第二种子点的数据值进行迭代更新,完成所述一个数据块集合的聚类,获取所述一个数据块集合中的第一种子点。
对于该步骤,具体可以利用K-means中的迭代方法来获取种子点,但是进行步骤S104的聚类后每个数据块集合中的数据是不变的。
在执行完步骤S104之后,如果需要对第一数据进行更精确的聚类,则可以通过下述两种方式(但不限于这两种方式)对第一数据继续进行聚类,具体如下:
方式一:基于第二数据中每个数据的值所属的所述K个数值范围,将所述第二数据中分别属于所述K个数值范围的数据,加入与所述K个数值范围中每个数值范围对应的数据块集合,获得K个数据集合,其中,所述第二数据为所述第一数据中除K个数据块集合中数据之外的数据;
针对所述K个数据集合中的每个数据集合,执行以下操作:
基于一个数据集合中每个数据的值与所述第一种子点的数据值之差的绝对值,对所述第一种子点的数据值进行迭代更新,完成所述一个数据集合的聚类,获取所述一个数据集合中的第三种子点。
例如,将利用步骤S103筛选后剩余的第二数据,即对第一数据中的所有数据块进行分类,对于数值范围不属于K个数值范围中任一数值范围的数据块,其属于第二数据,对第二数据进行进一步筛选,例如第二数据中的第一个数据属于第K个数值范围中的第i个数值范围,则将第一个数据加入第i个数值范围对应的第i个数据块集合,获得第i个数据集合,据此,对第二数据中的每一个数据都进行这样的处理,将第二数据中符合条件的数据加入到响应的数据块集合,获得数据集合,总共可以获得K个数据集合。对于数值范围不属于K个数值范围中任一数值范围的第二数据中的数据,不对其进行进一步处理,例如可以视为放弃的数据。
获得的K个数据集合的每个数据集合内部都具有利用步骤S104获得的种子点。对于获得的每一个数据集合,同样可以利用K-means聚类算法执行如下操作:利用K-means聚类算法对一个数据集合内部(内部的K-means算法的K值选取1)的每单个数据进行聚类,获得该数据集合中的更精确的第三种子点。同样,为了提高数据处理效率,可以采用并行处理技术分别通过对K-means聚类算法每个数据集合进行聚类运算。
方式二:针对第二数据和所述K个数据块集合进行凝聚型层次聚类,从而对所述K个数据块集合中的数据分别进行扩充,获取K个数据集合,其中,所述第二数据为所述第一数据中除K个数据块集合中数据之外的数据;
针对所述K个数据集合中的每个数据集合,执行以下操作:基于一个数据集合中每个数据的值与所述第一种子点的数据值之差的绝对值,对所述第一种子点的数据值进行迭代更新,完成所述一个数据集合的聚类,获取所述一个数据集合中的第四种子点。
例如,将利用步骤S103筛选后剩余的第二数据,即对第一数据中的所有数据块进行分类,对于数值范围不属于K个数值范围中任一数值范围的数据块,其属于第二数据,将第二数据与所述K个数据集合中的每个数据集合进行凝聚型层次聚类,从而对所述K个数据块集合中的数据分别进行扩充,获取K个数据集合。
获得的K个数据集合的每个数据集合内部都具有利用步骤S104获得的种子点。对于获得的每一个数据集合,同样可以利用K-means聚类算法执行如下操作:利用K-means聚类算法对一个数据集合内部的每单个数据进行聚类,获得该数据集合中的更精确的第三种子点。同样,为了提高数据处理效率,可以采用并行处理技术分别通过对K-means聚类算法每个数据集合进行聚类运算。例如采用并行处理技术,构建K个进程或者线程,生成K个数据集合,每个进程或者线程处理一个集合。在这个数据集合中,进行K-means算法(内部的K-means算法的K值选取1),最终确定这个数据集合内部的种子点位置。
如图3所示,本发明实施例二提供了一种基于数据块的索引信息的聚类装置,所述装置包括:
第一获取模块201,用于获取第一数据中每个数据块的索引信息,其中,所述索引信息中包括所述每个数据块的数值范围、每个数据块的集中度参数值和每个数据块的数据平均值;
划分模块202,用于将所述第一数据中的数据的数值范围分为K个数值范围;
第二获取模块203,用于基于所述每个数据块的数值范围与所述K个数值范围的从属关系,获取与所述K个数值范围一一对应的K个数据块集合;
聚类模块204,用于基于所述每个数据块的集中度参数值和所述每个数据块的数据平均值,对所述K个数据块集合中每个数据块集合完成聚类,获得所述K个数据块集合中每个数据块集合中的第一种子点。
在第一获取模块201,用于获取第一数据中每个数据块的索引信息之前,可以针对需要聚类的数据建立数据块(block,一个数据块中包括多个数据)的索引信息,该索引信息是为了描述每个数据块中的数据的特性,例如,索引信息可以包括每个数据块的数值范围、每个数据块的集中度参数值和每个数据块的数据平均值。根据实际运算的需要,索引信息中也可以包括其他的能够表征每个数据块的特性的信息,例如每个数据块中数据的最大值、最小值,每个数据块中数据的相似度等。
需要聚类的数据例如是第一数据,在建立需要聚类的数据的索引信息后,第一获取模块201获取已建立的第一数据中每个数据块的索引信息,这样更利于提高完成聚类时获取种子点的效率。
划分模块202例如采用K-means算法中给出的K值,将第一数据中的数据的数值范围分成K份。同样,划分模块202划分K个数值范围可以在建立索引信息前或者第一获取模块201获取索引信息前,也可以在建立索引信息后或者第一获取模块201获取索引信息后,也可以在建立索引信息或者第一获取模块201获取索引信息的同时,在此不做具体限定。
在获取索引信息且第一数据中的数据的数值范围分为K个数值范围后,
第二获取模块203基于每个数据块的数值范围与所述K个数值范围的从属关系,获取与所述K个数值范围一一对应的K个数据块集合,其中K为大于等于1的整数。
例如对于第一数据中的第一个数据块的数值范围,如果其属于第i个数值范围,则第一个数据块属于第i个数据块集合,即数值范围属于第i个数值范围的数据块属于第i个数据块集合,依次类推,获得K个数据块集合。据此,对第一数据中的所有数据块进行分类,对于数值范围不属于K个数值范围中任一数值范围的数据块,其属于第二数据,即第二数据为所述第一数据中除K个数据块集合中数据之外的数据,其中,i大于等于1且小于等于K。
聚类模块204具体用于分别对所述K个数据块集合中每个数据块集合执行以下操作,获得所述K个数据块集合中每个数据块集合中的第一种子点:
针对确定的一个数据块集合中的每个数据块的集中度参数值的排序,获取所述一个数据块集合中集中度最高的数据块;其中,数据块的集中度参数值可以以每单位维度上该数据块包括的数据量来衡量;
获取所述集中度最高的数据块中的第二种子点;其中,第二种子点可以为随机获取的种子点;
基于所述一个数据块集合中每个数据块的数据平均值与所述第二种子点的数据值之差的绝对值,对所述第二种子点的数据值进行迭代更新,完成所述一个数据块集合的聚类,获取所述一个数据块集合中的第一种子点。具体可以利用K-means中的迭代方法来获取种子点,但是利用聚类模块204进行聚类后每个数据块集合中的数据是不变的。
在获得第一种子点以及K个数据块集合后,如果需要对第一数据进行更精确的聚类,则可以通过下述两种方式(但不限于这两种方式)对第一数据继续进行聚类,具体如下:
方式一:该装置还包括第三获取模块和第四获取模块。
第三获取模块,用于基于第二数据中每个数据的值所属的所述K个数值范围,将所述第二数据中分别属于所述K个数值范围的数据,加入与所述K个数值范围中每个数值范围对应的数据块集合,获取K个数据集合,其中,所述第二数据为所述第一数据中除K个数据块集合中数据之外的数据。
第四获取模块在所述基于第二数据中每个数据的值所属的所述K个数值范围,将所述第二数据中分别属于所述K个数值范围的数据加入与所述K个数值范围中每个数值范围对应的数据块集合,获得K个数据集合之后,针对所述K个数据集合中的每个数据集合,执行以下操作:
基于一个数据集合中每个数据的值与所述第一种子点的数据值之差的绝对值,对所述第一种子点的数据值进行迭代更新,完成所述一个数据集合的聚类,获取所述一个数据集合中的第三种子点。
例如,将利用第二获取模块203筛选后剩余的第二数据,即对第一数据中的所有数据块进行分类,对于数值范围不属于K个数值范围中任一数值范围的数据块,其属于第二数据,对第二数据进行进一步筛选,例如第二数据中的第一个数据属于第K个数值范围中的第i个数值范围,则第三获取模块将第一个数据加入第i个数值范围对应的第i个数据块集合,获得第i个数据集合,据此,对第二数据中的每一个数据都进行这样的处理,将第二数据中符合条件的数据加入到响应的数据块集合,获得数据集合,总共可以获得K个数据集合。对于数值范围不属于K个数值范围中任一数值范围的第二数据中的数据,不对其进行进一步处理,例如可以视为放弃的数据。
获得的K个数据集合的每个数据集合内部都具有利用聚类模块204获得的种子点。对于获得的每一个数据集合,第四获取模块同样可以利用K-means聚类算法执行如下操作:利用K-means聚类算法对一个数据集合内部(内部的K-means算法的K值选取1)的每单个数据进行聚类,获得该数据集合中的更精确的第三种子点。同样,为了提高数据处理效率,可以采用并行处理技术分别通过对K-means聚类算法每个数据集合进行聚类运算。
方式二:该装置还包括第五获取模块和第六获取模块。
第五获取模块,用于针对第二数据和所述K个数据块集合进行凝聚型层次聚类,从而对所述K个数据块集合中的数据分别进行扩充,获取K个数据集合,其中,所述第二数据为所述第一数据中除K个数据块集合中数据之外的数据。
第六获取模块,用于在所述针对第二数据和所述K个数据块集合进行凝聚型层次聚类,从而对所述K个数据块集合中的数据分别进行扩充,获取K个数据集合之后,针对所述K个数据集合中的每个数据集合,执行以下操作:基于一个数据集合中每个数据的值与所述第一种子点的数据值之差的绝对值,对所述第一种子点的数据值进行迭代更新,完成所述一个数据集合的聚类,获取所述一个数据集合中的第四种子点。
例如,将利用第二获取模块203筛选后剩余的第二数据,即对第一数据中的所有数据块进行分类,对于数值范围不属于K个数值范围中任一数值范围的数据块,其属于第二数据,第五获取模块将第二数据与所述K个数据集合中的每个数据集合进行凝聚型层次聚类,从而对所述K个数据块集合中的数据分别进行扩充,获取K个数据集合。
获得的K个数据集合的每个数据集合内部都具有利用步骤S104获得的种子点。对于获得的每一个数据集合,第六获取模块同样可以利用K-means聚类算法执行如下操作:利用K-means聚类算法对一个数据集合内部的每单个数据进行聚类,获得该数据集合中的更精确的第三种子点。同样,为了提高数据处理效率,可以采用并行处理技术分别通过对K-means聚类算法每个数据集合进行聚类运算。例如采用并行处理技术,构建K个进程或者线程,生成K个数据集合,每个进程或者线程处理一个集合。在这个数据集合中,进行K-means算法(内部的K-means算法的K值选取1),最终确定这个数据集合内部的种子点位置。
本发明实施例三提供了一种一种基于数据块的索引信息的聚类装置,所述装置包括:
至少一个处理器,以及
与所述至少一个处理器连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如实施例一所述的方法。
本发明实施例四提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如实施例一中所述方法的步骤。
上述本发明实施例中的技术方案,至少具有如下的技术效果或优点:
通过采用本发明的技术方案,能够通过块索引信息,得到一个相对准确的种子点,继而减少聚类算法中种子点更新时的迭代次数,提高运算效率和聚类质量,保证了整个计算过程的稳定性。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种基于数据块的索引信息的聚类方法,其特征在于,所述方法包括:
获取第一数据中每个数据块的索引信息,其中,所述索引信息中包括所述每个数据块的数值范围、每个数据块的集中度参数值和每个数据块的数据平均值;
将所述第一数据中的数据的数值范围分为K个数值范围;
基于所述每个数据块的数值范围与所述K个数值范围的从属关系,获取与所述K个数值范围一一对应的K个数据块集合;
基于所述每个数据块的集中度参数值和所述每个数据块的数据平均值,对所述K个数据块集合中每个数据块集合完成聚类,获得所述K个数据块集合中每个数据块集合中的第一种子点。
2.如权利要求1中所述的聚类方法,其特征在于,所述基于所述每个数据块的集中度参数值和所述每个数据块的数据平均值,对所述K个数据块集合中每个数据块集合完成聚类,获得所述K个数据块集合中每个数据块集合中的第一种子点,包括:
分别对所述K个数据块集合中每个数据块集合执行以下操作,获得所述K个数据块集合中每个数据块集合中的第一种子点:
针对确定的一个数据块集合中的每个数据块的集中度参数值的排序,获取所述一个数据块集合中集中度最高的数据块;
获取所述集中度最高的数据块中的第二种子点;
基于所述一个数据块集合中每个数据块的数据平均值与所述第二种子点的数据值之差的绝对值,对所述第二种子点的数据值进行迭代更新,完成所述一个数据块集合的聚类,获取所述一个数据块集合中的第一种子点。
3.如权利要求1或2所述的聚类方法,其特征在于,在所述基于所述每个数据块的集中度参数值和所述每个数据块的数据平均值,对所述K个数据块集合中每个数据块集合完成聚类,获得所述K个数据块集合中每个数据块集合中的第一种子点之后,所述方法还包括:
基于第二数据中每个数据的值所属的所述K个数值范围,将所述第二数据中分别属于所述K个数值范围的数据,加入与所述K个数值范围中每个数值范围对应的数据块集合,获得K个数据集合,其中,所述第二数据为所述第一数据中除K个数据块集合中数据之外的数据。
4.如权利要求3所述的方法,其特征在于,在所述基于第二数据中每个数据的值所属的所述K个数值范围,将所述第二数据中分别属于所述K个数值范围的数据加入与所述K个数值范围中每个数值范围对应的数据块集合,获得K个数据集合之后,所述方法还包括:
针对所述K个数据集合中的每个数据集合,执行以下操作:
基于一个数据集合中每个数据的值与所述第一种子点的数据值之差的绝对值,对所述第一种子点的数据值进行迭代更新,完成所述一个数据集合的聚类,获取所述一个数据集合中的第三种子点。
5.如权利要求1或2所述的聚类方法,其特征在于,在所述基于所述每个数据块的集中度参数值和所述每个数据块的数据平均值,对所述K个数据块集合中每个数据块集合完成聚类,获得所述K个数据块集合中每个数据块集合中的第一种子点之后,所述方法还包括:
针对第二数据和所述K个数据块集合进行凝聚型层次聚类,从而对所述K个数据块集合中的数据分别进行扩充,获取K个数据集合,其中,所述第二数据为所述第一数据中除K个数据块集合中数据之外的数据。
6.如权利要求5所述的聚类方法,其特征在于,在所述针对第二数据和所述K个数据块集合进行凝聚型层次聚类,从而对所述K个数据块集合中的数据分别进行扩充,获取K个数据集合之后,所述方法还包括:
针对所述K个数据集合中的每个数据集合,执行以下操作:基于一个数据集合中每个数据的值与所述第一种子点的数据值之差的绝对值,对所述第一种子点的数据值进行迭代更新,完成所述一个数据集合的聚类,获取所述一个数据集合中的第四种子点。
7.一种基于数据块的索引信息的聚类装置,其特征在于,所述装置包括:
第一获取模块,用于获取第一数据中每个数据块的索引信息,其中,所述索引信息中包括所述每个数据块的数值范围、每个数据块的集中度参数值和每个数据块的数据平均值;
划分模块,用于将所述第一数据中的数据的数值范围分为K个数值范围;
第二获取模块,用于基于所述每个数据块的数值范围与所述K个数值范围的从属关系,获取与所述K个数值范围一一对应的K个数据块集合;
聚类模块,用于基于所述每个数据块的集中度参数值和所述每个数据块的数据平均值,对所述K个数据块集合中每个数据块集合完成聚类,获得所述K个数据块集合中每个数据块集合中的第一种子点。
8.如权利要求7中所述的聚类装置,其特征在于,所述聚类模块具体用于:
分别对所述K个数据块集合中每个数据块集合执行以下操作,获得所述K个数据块集合中每个数据块集合中的第一种子点:
针对确定的一个数据块集合中的每个数据块的集中度参数值的排序,获取所述一个数据块集合中集中度最高的数据块;
获取所述集中度最高的数据块中的第二种子点;
基于所述一个数据块集合中每个数据块的数据平均值与所述第二种子点的数据值之差的绝对值,对所述第二种子点的数据值进行迭代更新,完成所述一个数据块集合的聚类,获取所述一个数据块集合中的第一种子点。
9.如权利要求7或8所述的聚类装置,其特征在于,所述装置还包括:
第三获取模块,用于在所述基于所述每个数据块的集中度参数值和所述每个数据块的数据平均值,对所述K个数据块集合中每个数据块集合完成聚类,获得所述K个数据块集合中每个数据块集合中的第一种子点之后,基于第二数据中每个数据的值所属的所述K个数值范围,将所述第二数据中分别属于所述K个数值范围的数据,加入与所述K个数值范围中每个数值范围对应的数据块集合,获取K个数据集合,其中,所述第二数据为所述第一数据中除K个数据块集合中数据之外的数据。
10.如权利要求9所述的装置,其特征在于,所述装置还包括:
第四获取模块,用于在所述基于第二数据中每个数据的值所属的所述K个数值范围,将所述第二数据中分别属于所述K个数值范围的数据加入与所述K个数值范围中每个数值范围对应的数据块集合,获得K个数据集合之后,针对所述K个数据集合中的每个数据集合,执行以下操作:
基于一个数据集合中每个数据的值与所述第一种子点的数据值之差的绝对值,对所述第一种子点的数据值进行迭代更新,完成所述一个数据集合的聚类,获取所述一个数据集合中的第三种子点。
11.如权利要求7或8所述的聚类装置,其特征在于,所述装置还包括:
第五获取模块,用于在所述基于所述每个数据块的集中度参数值和所述每个数据块的数据平均值,对所述K个数据块集合中每个数据块集合完成聚类,获得所述K个数据块集合中每个数据块集合中的第一种子点之后,针对第二数据和所述K个数据块集合进行凝聚型层次聚类,从而对所述K个数据块集合中的数据分别进行扩充,获取K个数据集合,其中,所述第二数据为所述第一数据中除K个数据块集合中数据之外的数据。
12.如权利要求11所述的聚类装置,其特征在于,所述装置还包括:
第六获取模块,用于在所述针对第二数据和所述K个数据块集合进行凝聚型层次聚类,从而对所述K个数据块集合中的数据分别进行扩充,获取K个数据集合之后,针对所述K个数据集合中的每个数据集合,执行以下操作:基于一个数据集合中每个数据的值与所述第一种子点的数据值之差的绝对值,对所述第一种子点的数据值进行迭代更新,完成所述一个数据集合的聚类,获取所述一个数据集合中的第四种子点。
13.一种基于数据块的索引信息的聚类装置,其特征在于,所述装置包括:
至少一个处理器,以及
与所述至少一个处理器连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如权利要求1-6任一项所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711089425.4A CN109753986A (zh) | 2017-11-08 | 2017-11-08 | 一种基于数据块的索引信息的聚类方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711089425.4A CN109753986A (zh) | 2017-11-08 | 2017-11-08 | 一种基于数据块的索引信息的聚类方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109753986A true CN109753986A (zh) | 2019-05-14 |
Family
ID=66401351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711089425.4A Pending CN109753986A (zh) | 2017-11-08 | 2017-11-08 | 一种基于数据块的索引信息的聚类方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109753986A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306414A (zh) * | 2020-10-30 | 2021-02-02 | 北京泽石科技有限公司 | 数据处理方法及装置 |
-
2017
- 2017-11-08 CN CN201711089425.4A patent/CN109753986A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306414A (zh) * | 2020-10-30 | 2021-02-02 | 北京泽石科技有限公司 | 数据处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103810101B (zh) | 一种软件缺陷预测方法和软件缺陷预测系统 | |
CN110008259A (zh) | 可视化数据分析的方法及终端设备 | |
Ahalya et al. | Data clustering approaches survey and analysis | |
CN106599230A (zh) | 一种分布式数据挖掘模型评估的方法与系统 | |
CN104731916A (zh) | 数据挖掘中基于密度优化初始中心的k均值聚类方法 | |
CN110533116A (zh) | 基于欧式距离的自适应集成的不平衡数据分类方法 | |
CN108280236A (zh) | 一种基于LargeVis的随机森林可视化数据分析方法 | |
CN109726749A (zh) | 一种基于多属性决策的最优聚类算法选择方法和装置 | |
CN112001409A (zh) | 一种基于K-means聚类算法的配电网线损异常诊断方法和系统 | |
CN111079788A (zh) | 一种基于密度Canopy的K-means聚类方法 | |
Liu et al. | An improved random forest algorithm based on attribute compatibility | |
CN110969260A (zh) | 不平衡数据过采样方法、装置及存储介质 | |
Ramik et al. | Fuzzy mathematical programming: a unified approach based on fuzzy relations | |
CN109753986A (zh) | 一种基于数据块的索引信息的聚类方法和装置 | |
CN105631465A (zh) | 一种基于密度峰值的高效层次聚类方法 | |
CN111782904A (zh) | 一种基于改进smote算法的非平衡数据集处理方法及系统 | |
CN107766887A (zh) | 一种局部加权的不完整数据混杂聚类方法 | |
CN115017988A (zh) | 一种用于状态异常诊断的竞争聚类方法 | |
Jiang et al. | Discharge estimation based on machine learning | |
CN106127254A (zh) | 一种基于边界样本数据的模糊单类分类器 | |
Abdelbari et al. | Model learning using genetic programming under full and partial system information conditions | |
Norrenbrock et al. | Paths in the minimally weighted path model are incompatible with Schramm-Loewner evolution | |
CN109902762A (zh) | 基于1/2相似度偏离的数据预处理方法 | |
CN109960703A (zh) | 用于大数据挖掘聚类的自适应pso-pfcm聚类方法 | |
CN113222034B (zh) | 基于知识蒸馏的细粒度多类别不平衡故障分类方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190514 |