基于中心索引的海量高维数据的聚类方法

文档序号:6400146阅读:276来源:国知局
专利名称:基于中心索引的海量高维数据的聚类方法
技术领域
本发明涉及一种聚类方法,尤其是一种基于中心索引的海量高维数据的聚类方法,属于数据聚类的技术领域。
背景技术
聚类是一种重要的数据分析手段,它按照一定的要求和规律对数据集中的数据对象进行区分和分类,进而把一个没有类别标记的数据集按照某种准则划分成若干个子集(类),并使相似的数据对象尽可能地归为一类、不相似的数据对象尽可能地划分到不同的类中。与此同时,随着信息技术的迅猛发展,聚类所面临的不仅是数据量越来越大的问题,更重要的还是数据的高维度问题。换句话说,由于数据来源的丰富多样,图文声像甚至视频都逐渐成为聚类处理的目标对象,这些特殊对象的属性信息往往要从数十个甚至数百个方面来表现,其每一个属性都成为数据对象的一个维,对高维数据的聚类分析,已成为众多领域研究方向之一。K-means方法不仅对低维数据的聚类非常有效,而且对高维数据的聚类也有很好的支持。近年来的研究表明,对高维数据的聚类可以归为两类,一类是基于密度的聚类方法,另一类就是基于k-means的聚类方法。k-means聚类方法将η个数据对象划分为k个聚类,以便使得所获得的聚类满足:同一聚类中的对象相似度较高,而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。为了更好的刻画数据,对于海量数据,很小的k值意义不大。对于海量数据,k通常具有较大的值,例如超出数万都很普遍。这样对于海量高维数据,k-means的计算代价非
母曰虫吊印贝。

发明内容
本发明的目的是克服现有技术中存在的不足,提供一种基于中心索引的海量高维数据的聚类方法,其能有效缩短海量数据的聚类时间,降低海量数据的聚类代价。按照本发明提供的技术方案,所述基于中心索引的海量高维数据的聚类方法,所述海量高维数据的聚类方法包括如下步骤:
a、在包含海量高维数据的数据集中选取k个中心点,并按照距离将所选取的k个中心点聚类分成m个分区,m个分区中每个分区包含若干聚类点;
b、获取上述m个分区中每个分区对应的中心点和半径,并将每个分区对应的中心点作为索引输入;
C、将上述数据集中的数据点与上述m个分区中每个分区对应的中心点进行距离比较,得到所需的选定分区及选定分区中心点;其中,所述选定分区中心点为选定分区的中心点,所述选定分区中心点与所述数据集中的数据点的距离最近;
d、将数据集中的数据点与选定分区内的聚类点进行距离比较,以对所述数据集中的数据点进行分析聚类。所述步骤d中,选定分区的半径为rl,未选定分区的半径为r2 ;数据集中的数据点到选定分区的距离为dl,到未选定分区的距离为d2;若d2彡dl+ rl+ r2,则对于未选定分区中任意一点,到数据集中的数据点的距离要大于选定分区中任意一聚类点到数据集中的数据点的距离时,数据集中的数据点仅与选定分区内的聚类点进行距离比较,以进行所需的分析聚类。所述步骤a中,聚类成分区的数量m远远小于中心点的个数k。本发明的优点:增加了对选取k个中心点的聚类过程,聚类的结果作为索引的依据,通过裁减中心点减少了比较需要的计算代价,能有效缩短海量数据的聚类时间,降低海量数据的聚类代价。


图1为本发明将k个中心点聚类成m个分区后的示意图。图2为本发明中获取m个分区的中心点后的示意图。图3为本发明计算并比较数据点与分区的中心点的距离的示意图。图4为本发明得到选定分区,并将数据点与选定分区的聚类点进行距离比较后的示意图。图5为本发明的一种仿真比较示意图。图6为本发明的另一种仿真比较示意图。
具体实施例方式下面结合具体附图和实施例对本发明作进一步说明。为了能够降低k-menns聚类方法对海量高维数据的聚类开销,本发明的聚类方法包括如下步骤,具体地,包括:
a、在包含海量高维数据的数据集中选取k个中心点,并按照距离将所选取的k个中心点聚类分成m个分区,m个分区中每个分区包含若干聚类点;
本发明实施例中,k个中心点为在海量高维数据的数据集中随机选取,依照k-means的聚类方法,根据距离将k个中心点聚类分成m个分区,其中,聚类得到分区的数量m远远小于选取中心点的数量k ;聚类得到的每个分区均包含若干个聚类点;
b、获取上述m个分区中每个分区对应的中心点和半径,并将每个分区对应的中心点作为索引输入;
本发明实施例中,根据每个分区的平均值来计算得到每个分区的中心点,所述半径为每个分区内对应分区的中心点到每个分区中最远点的距离,所述获取每个分区中心点的中心点及半径的方法与k-means聚类方法相同;
C、将上述数据集中的数据点与上述m个分区中每个分区对应的中心点进行距离比较,得到所需的选定分区及选定 分区中心点;其中,所述选定分区中心点为选定分区的中心点,所述选定分区中心点与所述数据集中的数据点的距离最近;
k-means聚类方法中是根据欧式距离来进行聚类;本发明实施例中,所述数据集中的数据点为包含海量高维数据的数据集中的任意一点,根据所述数据点与上述每个分区中心点的距离比较,来获取选定分区点与选定分区中心点。d、将数据集中的数据点与选定分区内的聚类点进行距离比较,以对所述数据集中的数据点进行分析聚类。所述步骤d中,选定分区的半径为rl,未选定分区的半径为r2 ;数据集中的数据点到选定分区的距离为dl,到未选定分区的距离为d2;若d2彡dl+ rl+ r2,则对于未选定分区中任意一点,到数据集中的数据点的距离要大于选定分区中任意一聚类点到数据集中的数据点的距离时,数据集中的数据点仅与选定分区内的聚类点进行距离比较,以进行所需的分析聚类。若不进行上述限制,通过一次距离比较找到的选定中心点不一定是真正最近的,真正最近的中心点就会被裁减掉了。添加上述限制后,得到的是真正的最近点。本发明是增加了对选取k个中心点的聚类过程,聚类的结果作为索引的依据,通过裁减中心点减少了比较需要的计算代价。由于每个分区中的聚类点即为初始选定的k个中心点,因此,根据数据点与分区中聚类点的距离比较进行聚类,能够实现与k-means聚类结果相类似的聚类目的。本发明实施例中,由于在选定分区与未选定分区之间,通过距离与半径的比较,省去一些未选定分区中聚类点与数据集中的数据点的比较过程,从而能够有效地降低对海量高维数据的聚类开销。具体地,本发明实施例中,在MapReduce (MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算)中实现基于索引的k-means算法。首先把输入数据装换成二进制格式并且得到最初的中心,即得到k个中心点。之后反复调用map函数和reduce函数。每次循环中,在map初始化阶段,会给中心加索引。在map函数中,把点分到距离它们最近的聚类中,之后在reduce函数中重新计算新的中心。实施例1 图广图4为本发明的一个仿真实例示意图,其中,为将k个中心点聚类为5个分区,即m=5。计算每个分区的中心点与半径,对于包含海量高维数据的数据集中的给定点P,计算给定点P与每个分区的中心点的距离,以获取与给定点P距离最近的分区中心点及对应的分区,即能得到选定分区及选定分区中心点。当获得选定分区及选定分区中心点后,计算给定点P与所述选定分区内聚类点的距离,根据k-means的聚类方法可知,根据给定点P与聚类点的距离,能够实现对数据集中数据点的聚类。在本发明实施例中,对于获得选定分区后,给定点P是否需要与未选定分区内聚类点进行距离比较,可以根据给定点P与选定分区、未选定分区之间的关系来确定;当给定点P只需要与选定分区内的聚类点或部分未选定分区内的聚类点进行距离比较以作为聚类分析的依据时,能够大大缩小进行聚类的开销。实施例2
本实施例中,以高维音频数据作为研究对应,实施环境包括14台电脑的集群,每台电脑有两个芯片,双核(2.70 GHz),CPUSE5400,4GB内存,使用Iinux操作系统。Hadoop版本为0.20.3,MapReduce系统的所有实验都使用Javal.6。其中,音频数据库包括从因特网上下载的大约十万首MP3歌曲,这些歌曲中大部分是流行音乐,剩下的是古典和民间音乐。从音频数据中提取主要特征并且得到26维的数据集。一个26维空间中的点代表一首歌的一个框架。数据集总共包括167876767个26维向量。基准程序是Mahout的k-means实现,它是由Apache开发的著名的机器学习库。对I万首歌的音频数据进行聚类,k分别为50,500和5000,为了去除环境的影响,这个实验在单个计算机上进行。所述用于计算计算机的配置和前面的集群的数据结点的配置相同。运行时间的比较如表I所示:
表I运行时间与聚类个数的对照
权利要求
1.一种基于中心索引的海量高维数据的聚类方法,其特征是,所述海量高维数据的聚类方法包括如下步骤: (a)、在包含海量高维数据的数据集中选取k个中心点,并按照距离将所选取的k个中心点聚类分成m个分区,m个分区中每个分区包含若干聚类点; (b)、获取上述m个分区中每个分区对应的中心点和半径,并将每个分区对应的中心点作为索引输入; (C)、将上述数据集中的数据点与上述m个分区中每个分区对应的中心点进行距离比较,得到所需的选定分区及选定分区中心点;其中,所述选定分区中心点为选定分区的中心点,所述选定分区中心点与所述数据集中的数据点的距离最近; (d)、将数据集中的数据点与选定分区内的聚类点进行距离比较,以对所述数据集中的数据点进行分析聚类。
2.根据权利要求1所述的基于中心索引的海量高维数据的聚类方法,其特征是:所述步骤(d)中,选定分区的半径为rl,未选定分区的半径为r2;数据集中的数据点到选定分区的距离为dl,到未选定分区的距离为d2;若d2彡dl+ rl+ r2,则对于未选定分区中任意一点,到数据集中的数据点的距离要大于选定分区中任意一聚类点到数据集中的数据点的距离时,数据集中的数据点仅与选定分区内的聚类点进行距离比较,以进行所需的分析聚类。
3.根据权利要求1所述的基于中心索引的海量高维数据的聚类方法,其特征是:所述步骤(a)中,聚类成分 区的数量m远远小于中心点的个数k。
全文摘要
本发明涉及一种基于中心索引的海量高维数据的聚类方法,其包括如下步骤a、在包含海量高维数据的数据集中选取k个中心点,并按照距离将所选取的k个中心点聚类分成m个分区;b、获取上述m个分区的中心点和半径,并将每个分区对应的中心点作为索引输入;c、将上述数据集中的数据点与上述m个分区中每个分区对应的中心点进行距离比较,得到所需的选定分区及选定分区中心点;所述选定分区中心点为选定分区的中心点,所述选定分区中心点与所述数据集中的数据点的距离最近;d、将数据集中的数据点与选定分区内的聚类点进行距离比较,以对所述数据集中的数据点进行分析聚类。本发明能有效缩短海量数据的聚类时间,降低海量数据的聚类代价。
文档编号G06F17/30GK103150372SQ20131007501
公开日2013年6月12日 申请日期2013年3月8日 优先权日2013年3月8日
发明者李秋虹, 赵航涛 申请人:江苏唯实科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1