一种大数据聚类方法及装置与流程

文档序号:18642828发布日期:2019-09-11 23:45阅读:159来源:国知局
一种大数据聚类方法及装置与流程

本发明涉及聚类分析技术领域,具体涉及一种大数据聚类方法及装置。



背景技术:

目前,我们生活在一个被拥有4v特点的大数据时代,丰富的数据资源中蕴藏着大量的宝贵价值,从中获取有利的信息成为学术界和工业界的热点问题。聚类作为数据挖掘领域研究的主要内容之一,在揭示数据内在性质及规律方面具有极其重要的作用。维度高,数据结构复杂和体积庞大的数据使传统的聚类分析方法显得力不从心,并且传统的聚类方法,例如分布式k-means聚类算法无论是在串行化或者并行化的情况下始终都存在着初始聚类中心随机选择的缺点,严重影响最终收敛速度和聚类效果;同时,对大规模数据集进行聚类分析,单服务器的硬件瓶颈致使算法分析能力受到限制。



技术实现要素:

本发明的目的在于克服上述技术不足,提供一种大数据聚类方法及装置,解决现有技术中收敛速度慢、聚类效果不好的技术问题。

为达到上述技术目的,本发明的技术方案提供一种大数据聚类方法,包括以下步骤:

s1、获取原始数据集;

s2、采用分布式canopy算法将所述原始数据集划分为多个全局canopy中心集;

s3、采用分布式k-means聚类算法,以各所述全局canopy中数据样本的均值作为所述分布式k-means聚类算法的初始聚类中心,对所述原始数据集进行聚类处理。

本发明还提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现所述大数据聚类方法。

本发明还提供一种大数据聚类装置,包括客户终端、名称节点服务器以及数据节点服务器,所述数据节点服务器的数量为多个,所述客户终端、名称节点服务器以及多个所述数据节点服务器组建hadoop集群;

所述客户终端用于上传原始数据集至所述名称节点服务器;

所述名称节点服务器用于将所述原始数据集分配至空闲的数据节点服务器;

所述数据节点服务器用于采用所述大数据聚类方法,对所述原始数据集进行聚类处理。

与现有技术相比,本发明的有益效果包括:本发明首先采用分布式canopy算法将所述原始数据集划分为多个全局canopy中心集,并计算各所述全局canopy中心集的均值,以该均值作为分布式k-means聚类算法的初始聚类中心进行聚类。从而利用分布式canopy算法改进分布式k-means聚类算法存在的聚类数和初始聚类中心随机选择的缺陷,加快了收敛速度,提高了聚类效果。同时,canopy算法和k-means聚类算法均结合分布式数据处理方法,从而缓解了单服务器处理海量数据带来的硬件瓶颈问题,有利于对大规模数据进行快速、有效的数据挖掘。

附图说明

图1是本发明提供的大数据聚类方法一实施方式的流程图;

图2是本发明提供的分布式canopy算法一实施方式的流程图;

图3是本发明提供的分布式k-means聚类算法一实施方式的流程图;

图4是本发明提供的大数据聚类装置的结构示意图。

附图标记:

1、客户终端,2、名称节点服务器,3、数据节点服务器。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

实施例1

如图1所示,本发明的实施例1提供了大数据聚类方法,包括以下步骤:

s1、获取原始数据集;

s2、采用分布式canopy算法将所述原始数据集划分为多个全局canopy中心集;

s3、采用分布式k-means聚类算法,以各所述全局canopy中心集的全局canopy中心作为所述分布式k-means聚类算法的初始聚类中心,对所述原始数据集进行聚类处理。

本发明中,分布式k-means聚类算法以分布式canopy算法的全局canopy中数据样本的均值为初始聚类中心进行聚类处理,利用分布式canopy算法改进分布式k-means聚类算法存在的聚类数和初始聚类中心随机选择的缺陷,有效的提高了对大数据进行聚类分析时的聚类质量,加快了收敛速度。具体的,canopy算法用来获取k-means聚类算法的聚类簇数和初始聚类中心值两个初始输入参数。以全局canopy中心的个数作为聚类簇数,计算各全局canopy中数据样本到其全局canopy中心之间距离的均值,以各均值作为初始聚类中心值。同时,本发明结合分布式数据处理方法,实现聚类的并行化处理,避免了单服务器进行聚类分析时的硬件瓶颈。

优选的,如图2所示,所述s2具体包括:

s21、对所述原始数据集进行预处理,并将所述原始数据集分割成多个数据子集;

s22、采用分布式canopy算法将每一所述数据子集分别划分为多个局部canopy中心集;

s23、采用分布式canopy算法将每一所述局部canopy中心集分别划分为多个全局canopy中心集。

将原始数据集分割为多个数据子集分别进行处理,采用分布式canopy算法进行分布式处理,提高处理效率,降低硬件损耗。

优选的,如图2所示,所述s22具体为:

s221、计算所述数据子集中每个数据样本的方差,选取方差最小的数据样本作为局部canopy中心,并将其从所述数据子集中删除;

s222、计算所述数据子集中除所述局部canopy中心外的其他样本数据到所述局部canopy中心的距离,将距离小于第一阈值的样本数据归入以所述局部canopy中心为中心的局部canopy中,将距离小于第二阈值的样本数据从所述数据子集中删除,所述第一阈值大于第二阈值;

s223、判断所述数据子集是否为空,如果是,则获取所有所述局部canopy中心集,否则转s221进行下一次分类。

采用canopy算法对数据子集进行划分。如果数据子集中数据样本到局部canopy中心的距离小于第一设定阈值,将这些数据样本归入到以该局部canopy中心为中心的局部canopy中,划分为一类。如果数据样本到局部canopy中心的距离不仅小于第一设定阈值,而且小于第二设定阈值,则将其从数据子集中删除,因为这些数据样本成为下一个局部canopy中心的可能性很小;如果数据样本到局部canopy中心的距离大于第二设定阈值,则将其保留在数据子集中,因为它们会成为下一个局部canopy中心的候选者。数据子集不为空时,重复执行上述步骤,直至完成数据子集中所有数据样本的划分。

本优选实施例对传统canopy算法进行了改进,采用基于最小方差的分布式canopy算法,基于最小方差的分布式canopy算法是以数据子集中方差最小的样本点为canopy中心进行mapreduce并行化划分获得最终的canopy中心。基于方差的canopy算法其基本思想为:依据样本方差原理可知,数据集中样本方差的大小,直接决定样本在数据集中的离散趋势。方差越小,则该样本点周围数据越稠密,准则函数收敛越快;反之,则越稀疏,收敛越慢。因此,对传统canopy算法随机从待聚类样本中任选一点作为canopy中心的方式进行优化,先计算数据子集中每个数据样本的方差,以方差最小的样本数据作为canopy中心进行canopy划分,进而获取优质的初始聚类中心作为分布式k-means聚类算法的输入。

具体的,设待聚类的数据子集为:

d={xi|xi∈rm,i=1,2,3,...,n}

数据子集中每个数据样本均拥有m个属性,则数据xi可表示为xi={xi1,xi2,xi3,...,xim}。

方差的计算方法,通过下列定义公式计算:

定义1、数据样本xi和数据样本xj的欧式距离:

其中,j=(1,2,3,...,n)。

定义2、数据样本xi到所有数据样本距离的平均值:

定义3、数据样本xi的方差:

优选的,如图2所示,所述s23具体为:

s231、计算所述局部canopy中心集中每个数据样本的方差,选取方差最小的数据样本作为全局canopy中心,并将其从所述局部canopy中心集中删除;

s232、计算所述数据子集中除所述全局canopy中心外的其他样本数据到所述全局canopy中心的距离,将距离小于所述第一阈值的样本数据归入以所述全局canopy中心为中心的全局canopy中,将距离小于所述第二阈值的样本数据从所述局部canopy中心集中删除;

s233、判断所述局部canopy中心集是否为空,如果是,则获取所有所述全局canopy中心集并将各所述全局canopy中重叠区域内的数据样本归入与全局canopy中心距离最近的全局canopy中,否则转s231进行下一次分类。

本优选实施例采用基于最小方差的分布式canopy算法,对局部canopy中心集进行划分,得到全局canopy中心集,实现reduce阶段。本优选实施例中所采用的基于最小方差的分布式canopy算法与上一优选实施例中相同,其技术效果也相同,在此也就不再赘述。本优选实施例通过基于最小方差的分布式canopy算法对局部canopy中心集进行划分后,对划分至重叠区域内的样本数据进行了处理,将重叠区域内数据样本划分至距离其最近的全局canopy中心所在的全局canopy内。

优选的,所述第二阈值为所述原始数据集的平均距离,所述第一阈值为所述第二阈值的两倍。

本发明中,第一阈值和第二阈值可根据需求进行设定。本优选实施例为消除噪声点与孤立点的影响,设定第二阈值为原始数据集的平均距离,第一与之为第二阈值的两倍。

具体的,原始数据集的平均距离为:

优选的,如图2所示,采用map函数计算所述s221中的方差以及所述s231中的方差。

利用map函数计算方差,实现多个数据样本的方差的并行计算,提高计算效率。

优选的,如图2所示,通过hdfs分布式文件系统将所述原始数据集分割为多个数据子集。

采用hdfs分布式文件系统提供分布式数据处理平台,实现分布式数据处理方法,结合canopy算法和k-means聚类算法,实现大数据的快速聚类。

优选的,如图3所示,所述s3具体包括:

s31、对所述原始数据集进行预处理,并将所述原始数据集分割为多个数据子集,以各所述全局canopy中数据样本的均值作为初始聚类中心值,以所述全局canopy中心的个数作为初始聚类簇数,对所述数据子集进行局部聚类,得到局部k-means样本数据集;

s32、对比各所述局部k-means样本数据集的关键词,合并关键词相同的局部k-means样本数据集;

s33、计算每一所述局部k-means样本数据集中样本数据的均值作为新的聚类中心值,计算局部k-means样本数据集的个数作为新的聚类簇数,进行下一次的局部聚类;

s34、分别计算前后两次局部聚类的局部k-means样本数据集的误差平方和,如果前后两次局部聚类的误差平方和之差小于一定阈值,则结束聚类处理,否则转s33。

以全局canopy中数据样本的均值作为初始聚类中心值,以所述全局canopy中心的个数作为初始聚类簇数,进行k-means聚类。在初次聚类后,进入combine阶段,将关键词相同的局部样本数据集合并;然后进入reduce阶段,进行下一次的聚类处理,直至前后两次聚类的误差平方和之差小于一定阈值,停止聚类,获取最后一次局部聚类的聚类结果得到最终的聚类簇。

具体的,本优选实施例中准测函数的定义如下:

其中为bi的平均值,bi表示k-means聚类过程中第i个类簇所包含的数据样本集。

实施例2

本发明的实施例2提供了计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现以上任一实施例提供的大数据聚类方法。

本发明提供的计算机存储介质,用于实现大数据聚类方法,因此,上述大数据聚类方法所具备的技术效果,计算机存储介质同样具备,在此不再赘述。

实施例3

如图4所示,本发明的实施例3提供了大数据聚类装置,以下简称本装置,包括客户终端1、名称节点服务器2以及数据节点服务器3,所述数据节点服务器3的数量为多个,所述客户终端1、名称节点服务器2以及多个所述数据节点服务器3组建hadoop集群;

所述客户终端1用于上传原始数据集至所述名称节点服务器2;

所述名称节点服务器2用于将所述原始数据集分配至空闲的数据节点服务器3;

所述数据节点服务器3用于采用以上任一实施例提供的大数据聚类方法,对所述原始数据集进行聚类处理。

本发明提供的大数据聚类装置,用于实现大数据聚类方法,因此,上述大数据聚类方法所具备的技术效果,大数据聚类装置同样具备,在此不再赘述。

本实施例采用客户终端1、名称节点服务器2以及多个所述数据节点服务器3组建hadoop集群;hadoop集群包括hdfs分布式文件系统和mapreduce编程框架,提供分布式数据处理平台。mapreduce编程框架是由google公司设计并提出的一种简化的分布式编程模型.用于在分布式并行环境中进行大规模数据的计算。mapreduce处理数据过程主要分为map和reduce两个执行部分。首先,源数据被切分为多个数据块文件,以<key,value>形式读入进行map处理,将处理后的中间结果也以<key,value>的形式写入本地;map完成之后进行shuffle处理,它主要收集map任务的中间输出,进行排序和分区后发送到相应的reduce任务;最终在reduce端,接收一组指定的key并组合所有相关的value,以<key,value>形式输出。hdfs是googlegfs中的一个具有高度容错的分布式文件系统,它能提供高吞吐率的数据访问并适合海量数据的存储。将本发明提供的大数据聚类方法通过mapreduce并行化策略后加载到hadoop集群中。待聚类的原始数据集通过客户终端1和名称节点服务器2分配到各数据节点服务器3上进行聚类处理,数据节点服务器3的数量为多个,名称节点服务器2上存储有各数据节点服务器3的名称以及空闲状态,从而将待处理的原始数据集分配至空闲的数据节点服务器3进行处理,以保证聚类处理的及时完成。图4中示出了四个数据节点服务器3,很显然,数据节点服务器3还可以为其他数量。

具体的,由于分布式数据处理平台解决了单服务器客进行聚类分析时的硬件瓶颈,因此本发明中客户终端1、名称节点服务器2以及数据节点服务器3均可以采用普通pc实现,当然,也可以采用高性能服务器实现。

以上所述本发明的具体实施方式,并不构成对本发明保护范围的限定。任何根据本发明的技术构思所做出的各种其他相应的改变与变形,均应包含在本发明权利要求的保护范围内。

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