一种数据聚类方法和装置制造方法及图纸

技术编号:14690911 阅读:124 留言:0更新日期:2017-02-23 13:31
本申请实施例提供了一种数据聚类方法和装置。该数据聚类方法包括:建立初始化的聚类中心及根据聚类中心建立kd-tree;对待聚类数据进行聚类,包括:在所述聚类中心中根据所述kd-tree分别查找与各待聚类数据距离最近的聚类中心;根据聚类后所述聚类中心对应的待聚类数据修正所述聚类中心;执行迭代过程,包括根据修正后的聚类中心重复建立kd-tree,重复所述对待聚类数据进行聚类及重复所述修正所述聚类中心的过程;判断迭代是否完成;若是,则将最后一次迭代获得的聚类中心及其对应的待聚类数据作为聚类结果。该方法加快了聚类中心的查找速度,进而加快了数据聚类的速度。

【技术实现步骤摘要】

本申请涉及数据处理
,特别是涉及一种数据聚类方法和一种数据聚类装置。
技术介绍
聚类是将物理或抽象对象的集合分成由类似的对象组成的多个类的过程。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。数据的聚类是数据挖掘中一个重要的课题,在众多的聚类算法中,k-means聚类作为一种经典的聚类方法之一,因其准确、结构简单、速度快等优势而被广泛运用。在k-means聚类算法的每一次迭代中,待聚类数据都必须和K个聚类中心计算距离,最终选择距离最近的聚类中心为最终的聚类中心。然而,大数据时代,被聚类的数据一般是海量的而且是高纬度的,当数据量大、数据维度高的时候,从多个高维度的聚类中心中找到与待聚类数据距离最近的一个聚类中心,是一件相当费时的事情,这使得k-means在面对大量高维数据时,聚类的速度大大降低,甚至不可用。因此,目前需要本领域技术人员迫切解决的一个技术问题就是:如何提高数据聚类的速度。
技术实现思路
为了解决上述技术问题,本申请实施例提供了一种数据聚类方法,能够提高数据聚类速度。相应的,本申请实施例还提供了一种数据聚类装置,用以保证上述方法的实现及应用。为了解决上述问题,本申请公开了一种数据聚类方法,包括:建立初始化的聚类中心及根据所述聚类中心建立多维树kd-tree;对待聚类数据进行聚类,包括:在所述聚类中心中根据所述kd-tree分别查找与各待聚类数据距离最近的聚类中心;根据聚类后所述聚类中心对应的待聚类数据修正所述聚类中心;执行迭代过程,包括根据修正后的聚类中心重复建立kd-tree,重复所述对待聚类数据进行聚类及重复所述修正所述聚类中心的过程;判断迭代是否完成;若是,则将最后一次迭代获得的聚类中心及其对应的待聚类数据作为聚类结果。进一步,所述建立kd-tree,包括:按照近似最近邻搜索ANN方法建立kd-tree。进一步,所述对待聚类数据进行聚类,包括:将所述待聚类数据划分至分布式的计算节点中并行对所述待聚类数据进行聚类,其中,所述分布式的计算节点中均设置有所述kd-tree。进一步,在所述对待聚类数据进行聚类之前,还包括:将建立的所述kd-tree分发至所述分布式的计算节点中。进一步,所述根据聚类后所述聚类中心对应的待聚类数据修正所述聚类中心,包括:分别计算聚类后各所述聚类中心对应的待聚类数据的重心;将所述聚类中心对应的待聚类数据的重心作为对应的修正后的聚类中心。进一步,所述判断迭代是否完成,包括:判断迭代次数是否达到次数阈值,若是,则确定迭代完成;或者,判断一次迭代过程中修正前后的聚类中心之间的平均移动距离是否小于距离阈值,若是,则确定迭代完成。本申请实施例还公开了一种数据聚类装置,包括:创建单元,被配置为建立初始化的聚类中心及根据所述聚类中心建立kd-tree;聚类单元,被配置为对待聚类数据进行聚类,包括:在所述聚类中心中根据所述kd-tree分别查找与各待聚类数据距离最近的聚类中心;修正单元,被配置为根据聚类后所述聚类中心对应的待聚类数据修正所述聚类中心;迭代单元,被配置为执行迭代过程,包括根据修正后的聚类中心重复建立kd-tree,重复所述对待聚类数据进行聚类及重复所述修正所述聚类中心的过程;判断单元,被配置为判断迭代是否完成;结果确定单元,被配置为当所述判断单元判断迭代完成时,将最后一次迭代获得的聚类中心及其对应的待聚类数据作为聚类结果。进一步,所述创建单元,被配置为按照近似最近邻搜索ANN方法建立kd-tree。进一步,所述聚类单元,被配置为将所述待聚类数据划分至分布式的计算节点中并行对所述待聚类数据进行聚类,其中,所述分布式的计算节点中均设置有所述kd-tree。进一步,所述装置还包括:分发单元,被配置为在所述聚类单元对待聚类数据进行聚类之前,将建立的所述kd-tree分发至所述分布式的计算节点中。进一步,所述修正单元包括:计算子单元,被配置为分别计算聚类后各所述聚类中心对应的待聚类数据的重心;确定子单元,被配置为将所述聚类中心对应的待聚类数据的重心作为对应的修正后的聚类中心。进一步,所述判断单元,被配置为判断迭代次数是否达到次数阈值,若是,则确定迭代完成;或者,判断一次迭代过程中修正前后的聚类中心之间的平均移动距离是否小于距离阈值,若是,则确定迭代完成。与现有技术相比,本申请实施例包括以下优点:本申请实施例通过建立kd-tree(多维树),使得在聚类过程中可以利用kd-tree查找与各待聚类数据距离最近的聚类中心,改变了k-means聚类算法中逐一计算获得聚类中心的方法,加快了聚类中心的查找速度,进而加快了数据聚类的速度。尤其当数据量大、数据维度高时,可以快速的从多个高维度的聚类中心中找到与待聚类数据距离最近的一个聚类中心,提高了聚类的速度。附图说明图1是本申请的一种数据聚类方法实施例的步骤流程图;图2是本申请的另一种数据聚类方法实施例的步骤流程图;图3是本申请的一种数据聚类装置实施例的结构框图;图4是本申请的一种修正单元的结构框图;图5是本申请的一种数据聚类装置实施例的结构框图。具体实施方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。参照图1,示出了本申请的一种数据聚类方法实施例的步骤流程图,具体可以包括如下步骤:步骤101,建立初始化的聚类中心及根据聚类中心建立kd-tree。本申请实施例中,用于进行数据聚类的装置(以下简称该装置)首先建立初始化的聚类中心,具体可以是采用随机选择的向量作为初始化的聚类中心,例如在待聚类数据的向量中随机的选择K个向量作为初始化的聚类中心。其中,待聚类数据一般是一个个向量,同一批待聚类的数据一般维度都一样。该装置在本步骤中还进一步根据初始化的聚类中心建立kd-tree。kd-tree是k-dimensional树的简称,是一种分割k维数据空间的数据结构。主要应用于多维空间关键数据的搜索,如范围搜索和最近邻搜索。建立kd-tree的方法有多种,本申请实施例中可以采用ANN(ApproximateNearestNeighborSearch,近似最近邻搜索)方法对初始化的聚类中心建立至少一个kd-tree,按照ANN方法,可对方差较大的多个维度进行随机选择建立多个kd-tree,这些kd-tree是随机的kd-tree,建立的kd-tree使用现有的优化后的best-bin-first算法,可快速的从众多的高维聚类中心中找到距离当前向量最近的聚类中心。上述ANN是一种快速的kd-tree搜索算法,原始的kd-tree搜索算法由于每次需要回溯检验大量节点,并且都得回到根节点,导致搜索近邻的速度极慢,特别到了高维空间,搜索速度接近最慢的线性搜索。ANN提出了一种优先搜索队列的方式,可极大提高搜索速度,因此可以将kd-tree的应用扩展到高维空间。步骤102,对待聚类数据进行聚类。在建立聚类中心及kd-tree后,本步骤即可在聚类中心中根据kd-tree分别查找与各待聚类数据距离最近的聚类中心,从而可以获得各初始化的聚类中心所对应的与其距离最近的待聚类数据,该过程即为聚类过程。步骤10本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/55/201510487832.html" title="一种数据聚类方法和装置原文来自X技术">数据聚类方法和装置</a>

【技术保护点】
一种数据聚类方法,其特征在于,包括:建立初始化的聚类中心及根据所述聚类中心建立多维树kd‑tree;对待聚类数据进行聚类,包括:在所述聚类中心中根据所述kd‑tree分别查找与各待聚类数据距离最近的聚类中心;根据聚类后所述聚类中心对应的待聚类数据修正所述聚类中心;执行迭代过程,包括根据修正后的聚类中心重复建立kd‑tree,重复所述对待聚类数据进行聚类及重复所述修正所述聚类中心的过程;判断迭代是否完成;若是,则将最后一次迭代获得的聚类中心及其对应的待聚类数据作为聚类结果。

【技术特征摘要】
1.一种数据聚类方法,其特征在于,包括:建立初始化的聚类中心及根据所述聚类中心建立多维树kd-tree;对待聚类数据进行聚类,包括:在所述聚类中心中根据所述kd-tree分别查找与各待聚类数据距离最近的聚类中心;根据聚类后所述聚类中心对应的待聚类数据修正所述聚类中心;执行迭代过程,包括根据修正后的聚类中心重复建立kd-tree,重复所述对待聚类数据进行聚类及重复所述修正所述聚类中心的过程;判断迭代是否完成;若是,则将最后一次迭代获得的聚类中心及其对应的待聚类数据作为聚类结果。2.根据权利要求1所述的方法,其特征在于,所述建立kd-tree,包括:按照近似最近邻搜索ANN方法建立kd-tree。3.根据权利要求1所述的方法,其特征在于,所述对待聚类数据进行聚类,包括:将所述待聚类数据划分至分布式的计算节点中并行对所述待聚类数据进行聚类,其中,所述分布式的计算节点中均设置有所述kd-tree。4.根据权利要求3所述的方法,其特征在于,在所述对待聚类数据进行聚类之前,还包括:将建立的所述kd-tree分发至所述分布式的计算节点中。5.根据权利要求1至4中任意一项所述的方法,其特征在于,所述根据聚类后所述聚类中心对应的待聚类数据修正所述聚类中心,包括:分别计算聚类后各所述聚类中心对应的待聚类数据的重心;将所述聚类中心对应的待聚类数据的重心作为对应的修正后的聚类中心。6.根据权利要求1至4中任意一项所述的方法,其特征在于,所述判断迭代是否完成,包括:判断迭代次数是否达到次数阈值,若是,则确定迭代完成;或者,判断一次迭代过程中修正前后的聚类中心之间的平均移动距离是否小
\t于距离阈值,若是,则确定迭代完成。7.一种数据聚类装置,其特征在于,包括:创建单元,被配置为建立初始化的...

【专利技术属性】
技术研发人员:张增明姜飞俊
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1