面向海量数据近似快速聚类和索引方法

文档序号:6460360阅读:535来源:国知局

专利名称::面向海量数据近似快速聚类和索引方法
技术领域
:本发明涉及一种面向海量数据的近似快速聚类和索引方法。该方法通过对局部区域数据之间的相似度信息传递,为海量复杂数据的聚类分析提供判断依据,从而实现海量数据的近似快速聚类和索引,属于多媒体信息处理,数据挖掘算法领域。
背景技术
:在当今科学技术高度发展的今天,人们往往要面临海量的各种数据需要来进行处理,例如互联网上数以亿记的网页,图片,视频,音频等等,各种生物体测序出来的基因序列,都是包含海量数据信息的浩大工程,并且这些数据还在动态急速增长的过程中。我们面对如此浩大的数据需要处理时,数据挖掘就显得尤为重要了,聚类就是数据挖掘中最重要的方向之一。传统聚类方法可以分为两种:监督式聚类和非监督式聚类。其中监督式聚类的代表方法是K平均聚类。在这种方法中,聚类的最终结果与用户初始指定的初始聚类中心有关。用户需要指定聚类数目、初始质心和评判某个成员归属某个聚类集合的阈值大小。这种方法本质上不是根据聚类元素的分布进行自适应聚类,且其聚类精度和效率依赖于初始质心选取等预设参数。非监督聚类中代表性的聚类方法有支持向量聚类(SupportVectorClustering),是基于支持向量机的聚类算法。在支持向量聚类中,聚类数据通过高斯核函数从低维空间被映射到高维特征空间,于是可以在这个高维特征空间找到一个最小的超球体将这些数据包围起来(虽然在低维空间无法找到这样的最小超球体将被聚类数据包围起来),这个超球体接着被映射回原始低维数据空间,被看作是包围被聚类数据点的轮廓,这些轮廓就认为是聚类簇的边界,在同一个轮廓中被包围的数据点认为属于同一个聚类集合,从而完成聚类。但是,支持向量聚类也不是基于聚类数据物理分布的,难以反映数据全局分布。近来,一种叫做AP聚类(AffinityPropagationClustering)的方法被提出,其基本思想就是通过消息传递,实现数据点的自动聚类。它将数据对象之间的相似度作为输入,而且此相似度可以是非对称的,即数据对象^到数据对象A的相似度可以不等于数据对象B到数据对象^的相似度。实值信息在数据对象之间交换传播直至一组高质量的聚类中心和相应的聚类产生。假设/和t是任意两个节点,s^卩是按照下面式子计算得到的设/和A:<formula>formulaseeoriginaldocumentpage5</formula>之间距,,W是节点形成的聚类集合数目,则AP聚类可以看作使得£(c)=—Zl:J"c,)值最小的计算结果。在AP聚类中,节点和节点之间相互传递两类信息,分别是r(responsibility)和a(availability)。其中^,^)表示A:作为节点/的聚类质心的可信度,""&表示节点/选择A:作为其聚类质心的可信度。AP聚类过程如下所示。(l)根据以下公式更新节点之间的及<formula>formulaseeoriginaldocumentpage5</formula>(2)根据以下公式更新节点之「|^1:<formula>formulaseeoriginaldocumentpage5</formula>(3)将矩阵^和矩阵7组咨在一起来监督聚类中心的变化对于对象/,找出使+r",^最大化的A:,如果A:=z',那么/是一个候选聚类中心,否则A:就是/所在的聚类的候选聚类中心。(4)不断重复(1)到(3),直至(3)监督到的结果不变,或达到了最大迭代次数。但是,针对数据点之间形成的距离是稠密矩阵(DenseMatrix),用基于信息传递的聚类方法AP进行聚类时,其运行时间会随着数据量的增大程指数增长。因此我们需要对此信息传递的聚类方法进行改进。
发明内容本发明的目的是提供一种面向海量数据的近似快速聚类和索引方法。为实现上述的发明目的,本发明采用如下技术方案第一种基于近似计算的海量数据聚类方法包括如下步骤输入包括N个数据对象的集合,这些对象之间的相似度矩阵5Vxw,其中邓,力SG(/=1AW,y'=1AA0,我们对其进行基于分块递归信息传递的聚类1)将相似度矩阵&^;v平均分成t部分,接着对每部分再平均分成m部分,...并照此类推下去-<formula>formulaseeoriginaldocumentpage5</formula>2)把子矩阵Sii,^2,LS,,LSm通过基于消息传播的AP聚类方法迭代计算,得到Ar个消息传播子矩阵^i,勘,LJ目,L血;3)将步骤2)中的消息传播子矩阵^,^,L,厶LJ"在对角线上合并,将其余部分设为0,得到整个数据集的消息传播矩阵A':<formula>formulaseeoriginaldocumentpage6</formula>除A11,A22,L,Amm,L,Akk以外,消息传播矩阵j'的其余部分为O;4)以^作为递归分块信息传递的聚类方法的起始信息传递矩阵^vxw,作为迭代起点再利用AP聚类方法得到最终聚类结果。所述的对相似度矩阵&xw划分成为A:部分其中,t或m必须是大于l,小于LiV/(4xC)」,C是所期望类的数目的最大值,子矩阵Su,S22,L;,L&都是方阵,子矩阵Sn…的大小都是L^A」xL^A」,子矩阵&的大小是[iV-("1)xL毕」]。所述的基于消息传播的AP聚类方法迭代计算方法的步骤如下(1)根据以下公式更新节点之间的(2)根据以下公式更新节点之间的A<formula>formulaseeoriginaldocumentpage6</formula>(3)不断重复步骤(1)和fg(2)过程,直到收敛,或达到了最大迭代次数。第二种基于近似计算的海量数据聚类方法包括如下步骤输入包括TV个数据对象的集合,这些对象之间的相似度矩阵为&xw,其中SO(!'=l八ATJ=1AAT)。我们对其进行近似的快速信息传递的聚类l)给定大规模数据集合义,其中包含p个数据点,根据代表性最大的原则随机挑选^个综合能力强的数据点,g远小于p,对这^个节点之间的形成的距离矩阵应用AP聚类算法,得到其聚类结果;2)通过步骤l)得到了w个聚类集合,分别为G,C2,L,C",在每个聚类集合中计算节点离聚类质心最小距离m/"—J^""^/b(/,对于剩下的p-g个节点再进行分类,数据集中其余数据点/划分到某个q类的规则如下,当该节点离开"个聚类质心的距离小于某个m/"—^stowce/^;/时,则将这个节点纳入"'聚类集合;3)如果还有m个节点通过步骤2)无法纳入任何聚类集合,当m小于设定阈值,则对m个节点直接应用原始的AP聚类算法;当m大于设定阈值,则重复递归调用使用步骤l)和步骤2),分别得到聚类结果;4)将步骤2)和步骤3)得到的聚类结果进行合并,对每个类中的结果重新计算,从而得到每个类的最佳聚类中心。所述的数据集中其余数据点/划分到某个Cj类的规则如下1)distance(i,cj)<max-distance(cj);2)distance(i,cj)=min(distance(i,c1),distance(i,c2),...,distance(i,cn))。本发明具有的有益效果1)第一种递归分块信息传递的聚类方法先将原始数据集分组,对每个小组再继续分为若干小组,如此类推下去。然后对每个小组进行基于信息传播的原始AP聚类方法,然后在每个层次上将分组聚类的结果按照步骤(3)依次合并,并且最终合并的A矩阵作为初始状态继续基于信息传递的原始AP聚类方法的迭代起点,最后迭代求解。a)在大部分情况下,步骤(4)中基于消息传播的聚类方法AP的迭代次数要比一开始就使基于消息传播的聚类方法AP在整个数据集上运行的迭代次数要少得多,见图l。b)同时,由于在步骤(4)中,消息传播过程运行在整个数据集上,所以得到的聚类结果与原始方法相似,甚至更加。2)当面临海量数据的聚类问题时,步骤(2)的运行时间此时几乎可以忽略不计,这是由于在步骤(2)中,子矩阵&只有原始矩阵S的1/P大,而基于消息传播的聚类方法AP的运行时间会随着数据量的增大程指数增长,见图2。结合(1),分割式基于消息传播的数据聚类方法在处理大数据量集合时,速度要比原始方法AP快得多。3)第二种方法近似快速信息传递聚类算法,在海量数据集中依据代表性最大的原则选取若干个具有代表意义的数据点,然后首先在代表数据点中信息传递,然后将其他数据点以类似分类的方法划分到步骤(1)的类中,将不属于任何类别的数据点递归调用近似快速信息传递聚类算法,最后将结果合并计算聚类核心的最优解。其意义在于a)在聚类结果准确度影响不大的情况下,能指数级的降低算法计算的时间。能够将用原始AP聚类算法无法计算的问题,转化为能在有限时间内计算得到近似解的方法。用户能自由控制近似计算与原始AP聚类算法的相似度。b)对训练集以外的数据也普遍使用,特别是当需要聚类的数据还在不断增长的过程中时,不需要对整个新、老合并数据集重新迭代计算,只需对新数据进行合并,插入运算即可。图1是递归分块信息传递聚类算法与原始AP算法迭代次数的比较图;图2是递归分块信息传递聚类算法与原始AP算法迭所花费时间的比较图;图3是递归分块信息传递聚类算法与原始AP算法在流形数据上聚类结果的比较图4是近似快速信息传递聚类算法过程示意图;图5是近似快速信息传递聚类算法在书法字数据集上的效果展示。具体实施例方式本发明提出的递归分割信息传递的数据聚类方法实例如图1和图2所示,具体说明如下第一种基于分块递归信息传递的聚类方法包括如下步骤输入包括iV个数据对象的集合,这些对象之间的相似度矩阵其中邓,刀S=1AA^'-1AA0,我们对其进行基于分块递归信息传递的聚类1)将相似度矩阵Sw^平均分成A:部分,接着对每部分再平均分成附部分,...并照此类推下去<formula>formulaseeoriginaldocumentpage8</formula>为实现步骤l),我们设计了相似度计算模块,该模块实现对数据库中数据点两两对象之间的相似度的计算。该模块主要包括复杂数据的特征提取和数据与数据之间相似度计算两个主要算法。具体说明如下a)人脸数据的特征提取算法采用了压縮数据库来进行人脸表情分析(T.Kanade,J.F.Cohn,andY.Tian,Comprehensivedatabaseforfacialexpressionanalysis,inProc.IEEEInternationalConferenceonAutomaticFaceandGestureRecognition(FGR,00),pp.46-53,Grenoble,France,March2000)—文中提到的人脸轮廓提取算法,从每张人脸上提取59个特征点,包括眼睛、鼻子、嘴唇和下巴的轮廓,并以人中为坐标原点对数据进行归一化。b)相似度计算算法通过对任意两个数据点之间的欧氏距离取负求得。2)把子矩阵Su,&2,L;,L&通过基于消息传播的AP聚类方法迭代计算,得到&个消息传播子矩阵A"22,L血;3)将步骤2)中的消息传播子矩阵^,丄2,L,厶m,L^"在对角线上合并,将其余部分设为0,得到整个数据集的消息传播矩阵l:<formula>formulaseeoriginaldocumentpage9</formula>除A"",L,J,,L以外,消息传播矩阵i的其余部分为0;4)以l作为递归分块信息传递的聚类方法的起始信息传递矩阵Axw,作为迭代起点再利用AP聚类方法得到最终聚类结果。所述的对相似度矩阵Swxw划分成为A:部分其中,A:或w必须是大于l,小于LAV(4xC)」,C是所期望类的数目的最大值,子矩阵S"22,L;,L&都是方阵,子矩阵Su…的大小都是LiVA」x^A」,子矩阵&的大小是。所述的基于消息传播的AP聚类方法迭代计算方法的步骤如下(1)根据以下公式更新节点之间的<formula>formulaseeoriginaldocumentpage9</formula>(2)根据以下公式更新节点之间的A<formula>formulaseeoriginaldocumentpage10</formula>(3)不断重复步骤(1)和步骤(2)过程,直到收敛,或达到了最大迭代次数。为实现步骤2)至步骤4),我们设计了递归分块信息传递聚类模块,该模块使用本发明提供的方法对数据进行聚类。测试数据集为CMU大学的Cohn-KanadeAU-CodedFacialExpressionDatabase,实际数据库中有2024张人脸图像,这里k迭代分块方法为2X2X2。在步骤(4)总共迭代次数为原始AP聚类算法的1/8,整个聚类过程耗时约为1/6,得到的聚类数目相差小于3%,图3为部分聚类结果。其中对第一种流形数据(SwissRoll)甚至有改善的结果。第二种基于近似计算的海量数据聚类方法包括如下步骤输入包括N个数据对象的集合,这些对象之间的相似度矩阵为Shw,其中邓,/^0("lAiV,^lAiV)。为实现上述功能,我们设计了相似度计算模块该模块实现对数据库中数据点两两对象之间的相似度的计算。该模块主要包括复杂数据的特征提取和数据与数据之间相似度计算两个主要算法。具体说明如下a)人脸数据的特征提取算法采用了压縮数据库来进行人脸表情分析(T.Kanade,J.F.Cohn,andY.Tian,Comprehensivedatabaseforfacialexpressionanalysis,inProc.IEEEInternationalConferenceonAutomaticFaceandGestureRecognition(FGR,00),pp.46-53,Grenoble,France,March2000)—文中提到的人脸轮廓提取算法,从每张人脸上提取59个特征点,包括眼睛、鼻子、嘴唇和下巴的轮廓,并以人中为坐标原点对数据进行归一化。b)相似度计算算法通过对任意两个数据点之间的欧氏距离取负求得。然后,我们对其进行近似的快速信息传递的聚类1)给定大规模数据集合I,其中包含p个数据点,根据代表性最大的原则随机挑选《个综合能力强的数据点,《远小于p,对这《个节点之间的形成的距离矩阵应用AP聚类算法,得到其聚类结果;2)通过步骤l)得到了"个聚类集合,分别为d,G,L,C,在每个聚类集合中计算节点离聚类质心最小距离m/"—cfe/""ce/c(/,对于剩下的p-《个节点再进行分类,数据集中其余数据点Z'划分到某个Cj类的规则如下,当该节点离开w个聚类质心的距离小于某个m/"—^sto"ce/c(/时,则将这个节点纳入c/聚类集合;3)如果还有m个节点通过步骤2)无法纳入任何聚类集合,当m小于设定阈值,则对m个节点直接应用原始的AP聚类算法;当w大于设定阈值,则重复递归调用使用步骤l)和步骤2),分别得到聚类结果;4)将步骤2)和步骤3)得到的聚类结果进行合并,对每个类中的结果重新计算,从而得到每个类的最佳聚类中心。所述的数据集中其余数据点/划分到某个q类的规则如下2)(XCjj=m/"(^i/加wce"C]j,必towce6X",cfctowce(7,cj1^。为实现上述的近似快速信息传递的聚类,我们设计了近似快速计算聚类模块;该模块使用本发明中第二种方法提供的算法对海量数据进行快速的近似聚类。测试数据集为浙江大学CADAL中美百万册数字图书馆项目馆藏的10729个中国各朝各代的书法字图片,其中包括中文常用汉字为1496个。将聚类算法所花费时间呈指数级减少,最后中国书法字的聚类结果效果为图5所示。权利要求1.一种基于分块递归信息传递的聚类方法,其特征在于包括如下步骤输入包括N个数据对象的集合,这些对象之间的相似度矩阵SN×N,其中S[i,j]≤0(i=1ΛN,j=1ΛN),我们对其进行基于分块递归信息传递的聚类1)将相似度矩阵SN×N平均分成k部分,接着对每部分再平均分成m部分,...并照此类推下去<mathsid="math0001"num="0001"><math><![CDATA[<mrow><mi>S</mi><mo>=</mo><mfencedopen='('close=')'><mtable><mtr><mtd><mfencedopen='('close=')'><mtable><mtr><mtd><msub><mi>S</mi><mn>11</mn></msub></mtd><mtd><mi>L</mi></mtd><mtd><msub><mi>S</mi><mrow><mn>1</mn><mi>m</mi></mrow></msub></mtd></mtr><mtr><mtd><mi>M</mi></mtd><mtd><mi>O</mi></mtd><mtd><mi>M</mi></mtd></mtr><mtr><mtd><msub><mi>S</mi><mrow><mi>m</mi><mn>1</mn></mrow></msub></mtd><mtd><mi>L</mi></mtd><mtd><msub><mi>S</mi><mi>mm</mi></msub></mtd></mtr></mtable></mfenced></mtd><mtd><mi>L</mi></mtd><mtd><mfencedopen='('close=')'><mtable><mtr><mtd><mi>L</mi></mtd><mtd><msub><mi>S</mi><mrow><mn>1</mn><mi>k</mi></mrow></msub></mtd></mtr><mtr><mtd><mi>O</mi></mtd><mtd><mi>M</mi></mtd></mtr></mtable></mfenced></mtd></mtr><mtr><mtd><mi>M</mi></mtd><mtd><mi>O</mi></mtd><mtd><mi>M</mi></mtd></mtr><mtr><mtd><mfencedopen='('close=')'><mtable><mtr><mtd><mi>M</mi></mtd><mtd><mi>O</mi></mtd></mtr><mtr><mtd><msub><mi>S</mi><mrow><mi>k</mi><mn>1</mn></mrow></msub></mtd><mtd><mi>L</mi></mtd></mtr></mtable></mfenced></mtd><mtd><mi>L</mi></mtd><mtd><mfencedopen='('close=')'><mtable><mtr><mtd><mi>O</mi></mtd><mtd><mi>M</mi></mtd></mtr><mtr><mtd><mi>L</mi></mtd><mtd><msub><mi>S</mi><mi>kk</mi></msub></mtd></mtr></mtable></mfenced></mtd></mtr></mtable></mfenced></mrow>]]></math></maths>2)把子矩阵S11,S22,LSmm,LSkk通过基于消息传播的AP聚类方法迭代计算,得到k个消息传播子矩阵A11,A22,L,Amm,LAkk;3)将步骤2)中的消息传播子矩阵A11,A22,L,Amm,LAkk在对角线上合并,将其余部分设为0,得到整个数据集的消息传播矩阵A′<mathsid="math0002"num="0002"><math><![CDATA[<mrow><msup><mi>A</mi><mo>&prime;</mo></msup><mo>=</mo><mfencedopen='('close=')'><mtable><mtr><mtd><mfencedopen='('close=')'><mtable><mtr><mtd><msub><mi>A</mi><mn>11</mn></msub></mtd><mtd><mi>L</mi></mtd><mtd><msub><mi>A</mi><mrow><mn>1</mn><mi>m</mi></mrow></msub></mtd></mtr><mtr><mtd><mi>M</mi></mtd><mtd><mi>O</mi></mtd><mtd><mi>M</mi></mtd></mtr><mtr><mtd><msub><mi>A</mi><mrow><mi>m</mi><mn>1</mn></mrow></msub></mtd><mtd><mi>L</mi></mtd><mtd><msub><mi>A</mi><mi>mm</mi></msub></mtd></mtr></mtable></mfenced></mtd><mtd><mi>L</mi></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mi>M</mi></mtd><mtd><mi>O</mi></mtd><mtd><mi>M</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mi>L</mi></mtd><mtd><mfencedopen='('close=')'><mtable><mtr><mtd><mi>O</mi></mtd><mtd><mi>M</mi></mtd></mtr><mtr><mtd><mi>L</mi></mtd><mtd><msub><mi>A</mi><mi>kk</mi></msub></mtd></mtr></mtable></mfenced></mtd></mtr></mtable></mfenced></mrow>]]></math></maths>除A11,A22,L,Amm,LAkk以外,消息传播矩阵A′的其余部分为0;4)以A′作为递归分块信息传递的聚类方法的起始信息传递矩阵AN×N,作为迭代起点再利用AP聚类方法得到最终聚类结果。2.根据权利要求1所述的一种基于分块递归信息传递的聚类方法,其特征在于所述的对相似度矩阵Swxw划分成为A部分其中,A或m必须是大于l,小于LW(4xC)」,C是所期望类的数目的最大值,子矩阵Su,S22,L;,L&都是方阵,子矩阵Su…的大小都是L^A」x^A」,子矩阵&的大小是3.根据权利要求1所述的一种基于分块递归信息传递的聚类方法,其特征在于所述的基于消息传播的AP聚类方法迭代计算方法的步骤如下(1)根据以下公式更新节点之间的i:<formula>formulaseeoriginaldocumentpage3</formula>(2)根据以下公式更新节点之间的A<formula>formulaseeoriginaldocumentpage3</formula>(3)不断重复步骤(1)和步骤(2)过程,直到收敛,或达到了最大迭代次数。4.一种基于近似计算的海量数据聚类方法,其特征在于包括如下步骤输入包括个数据对象的集合,这些对象之间的相似度矩阵为&x;v,其中邻,刀S0(/=7VJ=1A7V)。我们对其进行近似的快速信息传递的聚类1)给定大规模数据集合X其中包含p个数据点,根据代表性最大的原则随机挑选^个综合能力强的数据点,《远小于i7,对这<个节点之间的形成的距离矩阵应用AP聚类算法,得到其聚类结果;2)通过步骤l)得到了m个聚类集合,分别为d,C2,L,C",在每个聚类集合中计算节点离聚类质心最小距离mz'"—tfcf朋ce/c(/,对于剩下的^-《个节点再进行分类,数据集中其余数据点/划分到某个Cj类的规则如下,当该节点离开"个聚类质心的距离小于某个柳'"—^to"ce/cz;/时,则将这个节点纳入"'聚类集合;3)如果还有m个节点通过步骤2)无法纳入任何聚类集合,当m小于设定阈值,则对m个节点直接应用原始的AP聚类算法;当m大于设定阈值,则重复递归调用使用步骤l)和步骤2),分别得到聚类结果;4)将步骤2)和步骤3)得到的聚类结果进行合并,对每个类中的结果重新计算,从而得到每个类的最佳聚类中心。5.根据权利要求4所述的一种基于近似计算的海量数据聚类方法,其特征在于,所述的数据集中其余数据点/划分到某个q类的规则如下2)fifotowce(7,Cjj=m/w(^fo她ce(,c一,tfotowce(7,",...'cfotowce"cj,。全文摘要本发明公开了一种面向海量数据的递归分块信息传递聚类和索引方法。利用该方法可以实现各种海量数据的准确,快速的聚类和适用于查询,更新的索引结构。用户可以将海量的无序数据进行处理,快速的进行聚类并索引,有利于以后的查询,检索,维护和更新。此方法可以应用于面向互联网的海量文本,图像,音频,视频等快速聚类和索引,也可以应用于海量生物基因序列的相似度比较,同源蛋白质检测。本发明还公开了一种近似的快速海量数据的聚类方法,利用该方法可以在保证聚类效果损失不大的情况下,能够呈指数级的加快聚类的速度。并且还能较好有利于训练集以外数据进行聚类,插入和更新,因此该方法可以普遍适用于各种复杂的海量数据的快速聚类和索引。文档编号G06F17/30GK101339553SQ20081005912公开日2009年1月7日申请日期2008年1月14日优先权日2008年1月14日发明者飞吴,夏丁胤,庄越挺,张绪青,郭同强申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1