聚类实现方法及系统的制作方法

文档序号:6575465阅读:153来源:国知局
专利名称:聚类实现方法及系统的制作方法
技术领域
本发明涉及数据挖掘领域,尤其涉及海量样本数据的聚类实现方法及相应系统。
背景技术
在当前数据挖掘领域,已有的聚类算法可以分为几类,包括基于划分的方法,基于 层次的方法,基于密度的方法,基于网格的方法以及基于模型的方法等。进行数据挖掘时,需要将对全部数据进行逐条计算及分析,算法时间复杂度高。海 量数据是对各种聚类算法的一个挑战。已有的聚类算法大都还只是停留在实验室阶段,对 于海量数据,有些算法或者不能进行有效处理,或者处理效率很低。Kmeans算法是一种基于距离的聚类实现方法,通过计算样本点之间的距离,以判 断样本之间的类群关系。Kmeans算法的基本原理为根据设置的聚类,为每一个聚类指定一个初始的聚类中心点(即初始随机指定样 本空间中的样本点为一个聚类的聚类中心点);分别计算数据库中的每一个样本在样本空 间中的对应样本点与每一个聚类中心点的距离,将每一个样本归属到距离最小的对应聚类 中心点所属聚类中。对每一个聚类分别统计本地属于该聚类的样本数量以及计算属于该聚 类的各样本的样本值的和值,用和值除以样本数量求取均值,得到本轮计算中每一个聚类 的对应虚拟聚类中心点;再计算每一个聚类的虚拟聚类中心点与对应的聚类中心点之间的 距离,具体的距离计算方法可以采用现有技术数据挖掘中可以采用的欧氏距离计算法、巴 氏距离计算法以及马氏距离计算法等,当两者之间的距离大于设定的距离阈值时,用每一 个聚类的虚拟聚类中心点更新其对应的聚类中心点,开始下一轮计算,直到每一个聚类的 聚类中心点都不再需要更新后,结束流程,将最后一次更新后的聚类中心点作为每一个聚 类的实际聚类中心点。最后输出每一个聚类的实际聚类中心点,以及每个样本所归属的聚 类。上述聚类实现方法,对于少量样本,可以方便地在单机上实现。但对于海量样本而 言,一方面由于单机内存容量有限,不可能读入海量的样本数据;另一方面,由于聚类过程 中需要进行聚类中心点的多轮更新计算过程,处理时间很长,在实际的数据业务应用中,效 率很低。因此,对于实际应用中海量数据的处理,如何有效地提升处理效率是数据挖掘中 需要加以解决的一个主要问题。

发明内容
本发明实施例提供聚类实现方法及聚类实现系统,通过采用多个节点并行处理, 解决现有技术对海量数据无法实现聚类处理及处理效率低的问题。本发明实施例提供的一种聚类实现方法包括步骤1、主控节点对样本分块,并将分块样本分配给至少两个计算节点,将分配的分块样本和每一个聚类的聚类中心点信息传送给每个所述计算节点;步骤2、每个所述计算节点分别计算分配的分块样本中每个样本在样本空间中的 对应样本点与各聚类中心点的距离,将每个样本归属到所述距离最小的对应聚类中心点所 属聚类;对每一个聚类分别统计本地属于该聚类的样本数量以及计算属于该聚类的各样本 的样本值的和值,并传送所述样本数量和所述和值给合并节点;步骤3、所述合并节点对每一个聚类根据每个所述计算节点传送的所述样本数量 和所述和值,求取均值,得到每一个聚类的虚拟聚类中心点信息,并传送给所述主控节点;步骤4、所述主控节点根据接收的每一个聚类的虚拟聚类中心点信息和当前保存 的每一个聚类的聚类中心点信息以及设定的中心点更新策略,当确定出至少由一个聚类的 虚拟聚类中心点信息更新当前保存的该聚类的聚类中心点信息时,发送本次更新后的和本 次未更新的每一个聚类的聚类中心点信息给所述至少两个计算节点,重复上述步骤2和步 骤3 ;当确定出每一个聚类的聚类中心点信息都不再更新时,将最后一次更新后的聚类中 心点信息作为每一个聚类的实际聚类中心点信息。本发明实施例提供的另一种聚类实现方法,包括步骤1、主控节点对样本分块,并将分块样本分配给至少两个计算节点,将分配的 分块样本和每一个聚类的聚类中心点信息传送给每个所述计算节点;步骤2、每个所述计算节点分别计算分配的分块样本中每个样本在样本空间中的 对应样本点与各聚类中心点的距离,将每个样本归属到所述距离最小的对应聚类中心点所 属聚类;分别统计本地属于每一个聚类的样本数量以及计算属于该聚类的各样本包含的每 一个样本属性的属性值的和值,并传送所述样本数量、以及携带聚类标识和样本属性标识 的所述和值给合并节点;步骤3、所述合并节点对每一个聚类的每一个样本属性根据每个所述计算节点传 送的所述样本数量和所述和值,计算出每一个聚类的每一个样本属性的属性值的均值,并 传送给所述主控节点;步骤4、所述主控节点根据接收的每一个聚类的每一个样本属性的属性值的均值, 得到每一个聚类的虚拟聚类中心点信息,并根据当前保存的每一个聚类的聚类中心点信息 以及设定的中心点更新策略,当确定出至少由一个聚类的虚拟聚类中心点信息更新当前保 存的该聚类的聚类中心点信息时,发送本次更新后的和本次未更新的每一个聚类的聚类中 心点信息给所述至少两个计算节点,重复上述步骤2和步骤3 ;当确定出每一个聚类的聚类 中心点信息都不再更新时,将最后一次更新后的聚类中心点信息作为每一个聚类的实际聚 类中心点信息。本发明实施例提供的一种聚类实现系统,包括主控节点、至少两个计算节点及合 并节点; 所述主控节点,用于对样本分块,并将分块样本分配给所述至少两个计算节点,将 分配的分块样本和每一个聚类的聚类中心点信息传送给每个所述计算节点;以及
接收所述合并节点传送的每一个聚类的虚拟聚类中心点信息;并根据接收的每一 个聚类的虚拟聚类中心点信息和当前保存的每一个聚类的聚类中心点信息以及设定的中 心点更新策略,当确定出至少由一个聚类的虚拟聚类中心点信息更新当前保存的该聚类的 聚类中心点信息时,发送本次更新后的和本次未更新的每一个聚类的聚类中心点信息给所述至少两个计算节点,当确定出每一个聚类的聚类中心点信息都不再更新时,将最后一次 更新后的聚类中心点信息作为每一个聚类的实际聚类中心点信息;所述计算节点,用于分别计算分配的分块样本中每个样本在样本空间中的对应样 本点与各聚类中心点的距离,将每个样本归属到所述距离最小的对应聚类中心点所属聚 类;对每一个聚类分别统计本地属于该聚类的样本数量以及计算属于该聚类的各样本的样 本值的和值,并传送所述样本数量和所述和值给合并节点;所述合并节点,用于对每一个聚类根据每个所述计算节点传送的所述样本数量和 所述和值,求取均值,得到每一个聚类的虚拟聚类中心点信息,并传送给所述主控节点。本发明实施例提供的另一种聚类实现系统,包括主控节点、至少两个计算节点及 合并节点;所述主控节点,用于对样本分块,并将分块样本分配给至少两个计算节点,将分配 的分块样本和每一个聚类的聚类中心点信息传送给每个所述计算节点;以及接收所述合并节点传送的每一个聚类的每一个样本属性的属性值的均值;并根据 接收的每一个聚类的每一个样本属性的属性值的均值,得到每一个聚类的虚拟聚类中心点 信息,根据当前保存的每一个聚类的聚类中心点信息以及设定的中心点更新策略,当确定 出至少由一个聚类的虚拟聚类中心点信息更新当前保存的该聚类的聚类中心点信息时,发 送本次更新后的和本次未更新的每一个聚类的聚类中心点信息给所述至少两个计算节点; 当确定出每一个聚类的聚类中心点信息都不再更新时,将最后一次更新后的聚类中心点信 息作为每一个聚类的实际聚类中心点信息;所述计算节点,用于分别计算分配的分块样本中每个样本在样本空间中的对应样 本点与各聚类中心点的距离,将每个样本归属到所述距离最小的对应聚类中心点所属聚 类;分别统计本地属于每一个聚类的样本数量以及计算属于该聚类的各样本包含的每一个 样本属性的属性值的和值,并传送所述样本数量、以及携带聚类标识和样本属性标识的所 述和值给合并节点;所述合并节点,用于对每一个聚类的每一个样本属性根据每个所述计算节点传送 的所述样本数量和所述和值,计算出每一个聚类的每一个样本属性的属性值的均值,并传 送给所述主控节点。本发明提供的聚类实现方法及系统中,将待处理的样本分块后分配给不同的计算 节点处理,解决了海量数据无法全部由单机读入内存进行计算处理的问题;本发明提供的 聚类实现方法中,采用了至少两个计算节点并行地参与聚类计算过程,加快了计算速度;再 通过合并节点进行有效合并,充分利用系统中各节点的计算资源,有效解决了现有技术对 海量数据无法实现聚类处理及处理效率低的问题。


图1为本发明实施例提供的聚类实现方法一的步骤流程图;图2为本发明实施例提供的聚类实现方法一的实际应用流程图;图3为本发明实施例提供的聚类实现方法二的步骤流程图;图4为本发明实施例提供的聚类实现方法二的实际应用流程图;图5为本发明实施例提供的与聚类实现方法一相对应的聚类实现系统结构示意图;图6为本发明实施例提供的与聚类实现方法二相对应的聚类实现系统结构示意 图。
具体实施例方式下面结合附图,对本发明提供的聚类实现方法流程及聚类实现系统结构进行详细 说明。参见图1,为本发明实施例提供的聚类实现方法一的步骤流程图,包括下列步骤步骤S101、主控节点对样本分块,并将分块样本分配给至少两个计算节点,将分配 的分块样本和每一个聚类的聚类中心点信息传送给每个计算节点;步骤S102、每个计算节点分别计算分配的分块样本中每个样本在样本空间中的 对应样本点与各聚类中心点的距离,将每个样本归属到距离最小的对应聚类中心点所属聚 类;对每一个聚类分别统计本地属于该聚类的样本数量以及计算属于该聚类的各样本的样 本值的和值,并传送样本数量和和值给合并节点;步骤S103、合并节点对每一个聚类根据每个计算节点传送的样本数量及和值,求 取均值,得到每一个聚类的虚拟聚类中心点信息,并传送给主控节点;步骤S104、主控节点根据接收的每一个聚类的虚拟聚类中心点信息和当前保存的 每一个聚类的聚类中心点信息以及设定的中心点更新策略,当确定出至少由一个聚类的虚 拟聚类中心点信息更新当前保存的该聚类的聚类中心点信息时,发送本次更新后的和本次 未更新的每一个聚类的聚类中心点信息给所述至少两个计算节点,重复上述步骤S102和 步骤S103 ;当确定出每一个聚类的聚类中心点信息都不再更新时,将最后一次更新后的聚 类中心点信息作为每一个聚类的实际聚类中心点信息。参见图2,为本发明实施例提供的上述聚类实现方法一的实际应用流程图,包括步骤S201、主控节点对样本分块并将分块样本分配给各计算节点;以及根据聚类 数量(假设为K个聚类)在样本空间中任选K个聚类中心点,作为每个聚类的初始的聚类 中心点。实际中,主控节点根据参与计算的计算节点数量(假设为N个),将待处理的全部 样本分成相应数量的分块(N个分块),并将每一个分块样本分配给不同的计算节点。步骤S202、主控节点将分配的分块样本和每一个聚类的聚类中心点信息传送给每 个计算节点。其中,每一个聚类的聚类中心点信息可以写入配置文件,分别传送给各计算节点。步骤S203、每个计算节点并行地分别计算分配的分块样本中每个样本在样本空间 中的对应样本点与各聚类中心点的距离,并进行距离比较,将本地每个样本归属到距离最 小的对应聚类中心点所属聚类。步骤S204、每个计算节点并行地对每一个聚类分别统计本地属于该聚类的样本数 量以及计算属于该聚类的各样本的样本值的和值,并传送样本数量及和值给合并节点。实际应用中,为了加快合并速度,可以采用多个合并节点并行合并的方式。并由主 控节点预先分配每个合并节点进行合并的对应聚类。一个合并节点至少合并一个聚类,当 然,一个合并节点也可以合并两个或多个聚类。5/10 页一般情况下,进行数据挖掘的样本包含有多个样本属性,计算各样本的样本值的 和值时,是对每一个样本属性,分别计算样本属性的属性值的和值。例如,假设有三个样本, 分别为样本1、样本2和样本3属于同一个聚类,每一个样本包含有三个样本属性,分别为属 性a、属性b和属性c,该三个样本对应的属性值如下样本1 ^VCi ;样本2 :a2、b2、c2 ;样本3 :a3、b3、c3 ;则计算出的样本值的和值为ai+aja^ b.+b^, Cl+C2+C3。传送样本数量及和值给合并节点的具体方法可以有如下两种方法一由主控节点将各合并节点进行合并的对应聚类,预先通知给各计算节点, 各计算节点根据每个合并节点进行合并的对应聚类,将本地统计出的属于对应聚类的样本 数量以及计算出的属于该对应聚类的各样本的样本值的和值,上报给对应的合并节点;方法二 由每个合并节点向每个计算节点收集信息。即每个合并节点根据自身 进行合并的对应聚类,分别向每个计算节点请求上传对应聚类的统计信息;每个计算节点 向每个合并节点返回其请求的对应聚类在本地统计出的样本数量以及计算出的属于对应 聚类的各样本的样本值的和值。步骤S205、合并节点对每一个聚类根据每个计算节点传送的样本数量及和值,求 取均值,得到每一个聚类的虚拟聚类中心点信息,并传送给主控节点。其中,均值的计算,就是对每一个聚类,将每个计算节点传送的对应该聚类的和值 进行累加,得到总和值,再累加每个计算节点传送的对应该聚类的样本数量,得到样本总数 量,用总和值除了样本总数量,得到该聚类的本轮计算的均值,即为该聚类的本轮计算的虚 拟聚类中心点信息。步骤S206、主控节点根据接收的每一个聚类的虚拟聚类中心点信息和当前保存的 每一个聚类的聚类中心点信息,计算每一个聚类的虚拟聚类中心点和其当前的聚类中心点 之间的距离,并与设定的距离阈值比较。步骤S207、主控节点对每一个聚类分别判断计算出的距离是否大于设定的距离阈 值;只要存在一个聚类,其计算出的对应距离大于设定的距离阈值,执行步骤S208,仅当全 部聚类计算出的对应距离都小于设定的距离阈值时,执行步骤S209。步骤S208、主控节点将计算出的距离值大于设定阈值的对应聚类的虚拟聚类中心 点信息更新当前保存的该聚类的聚类中心点信息,发送本次更新后的和本次未更新的每一 个聚类的聚类中心点信息给计算节点,转至步骤S203 ;步骤S209、主控节点将最后一次更新后的聚类中心点信息作为每一个聚类的实际 聚类中心点信息。一实施方式中,主控节点获取到每一个聚类的实际聚类中心点信息后,还可以利 用各计算节点并行计算出每一个样本所属聚类,具体为所述主控节点将每一个聚类的实际聚类中心点信息传送给每个计算节点;每个计算节点分别计算分配的分块样本中每个样本在样本空间中的对应样本点 与各实际聚类中心点的距离,将每个样本归属到距离最小的对应实际聚类中心点所属聚 类,并返回样本标识与所属聚类的聚类标识给主控节点;
主控节点根据每个计算节点返回的样本标识与所属聚类的聚类标识,确定出每个 样本所属聚类。上述聚类实现方法一中,采用了两个以上的计算节点并行地参与聚类计算,提高 了计算效率。且每个计算节点仅处理一部分样本数据,解决了海量数据由单机无法实现处 理的问题。且可以按照聚类数量设置相应数量的合并节点,使合并过程也并行化,进一步提 高合并处理速度。参见图3,为本发明实施例提供的聚类实现方法二的步骤流程图,包括下列步骤步骤S301、主控节点对样本分块,并将分块样本分配给至少两个计算节点,将分配 的分块样本和每一个聚类的聚类中心点信息传送给每个计算节点;步骤S302、每个计算节点分别计算分配的分块样本中每个样本在样本空间中的对 应样本点与各聚类中心点的距离,将每个样本归属到所述距离最小的对应聚类中心点所属 聚类;分别统计本地属于每一个聚类的样本数量以及计算属于该聚类的各样本包含的每一 个样本属性的属性值的和值,并传送样本数量、以及携带聚类标识和样本属性标识的和值 给合并节点;步骤S303、合并节点对每一个聚类的每一个样本属性根据每个计算节点传送的 样本数量及和值,计算出每一个聚类的每一个样本属性的属性值的均值,并传送给主控节点。步骤S304、主控节点根据接收的每一个聚类的每一个样本属性的属性值的均值, 得到每一个聚类的虚拟聚类中心点信息,并根据当前保存的每一个聚类的聚类中心点信息 以及设定的中心点更新策略,当确定出至少由一个聚类的虚拟聚类中心点信息更新当前保 存的该聚类的聚类中心点信息时,发送本次更新后的和本次未更新的每一个聚类的聚类中 心点信息给所述至少两个计算节点,重复上述步骤S302和步骤S303 ;当确定出每一个聚类 的聚类中心点信息都不再更新时,将最后一次更新后的聚类中心点信息作为每一个聚类的 实际聚类中心点信息。参见图4,为本发明实施例提供的上述聚类实现方法二的实际应用流程图,包括步骤S401、主控节点对样本分块并将分块样本分配给各计算节点;以及根据聚类 数量(假设为K个聚类)在样本空间中任选K个聚类中心点,作为每个聚类的初始的聚类 中心点。实际中,主控节点根据参与计算的计算节点数量(假设为N个),将待处理的全部 样本分成相应数量的分块(N个分块),并将每一个分块样本分配给不同的计算节点。步骤S402、主控节点将分配的分块样本和每一个聚类的聚类中心点信息传送给每 个计算节点。步骤S403、每个计算节点分别计算分配的分块样本中每个样本在样本空间中的对 应样本点与各聚类中心点的距离,将每个样本归属到所述距离最小的对应聚类中心点所属 聚类。步骤S404、每个计算节点并行地分别统计本地属于每一个聚类的样本数量以及计 算属于该聚类的各样本包含的每一个样本属性的属性值的和值,并传送样本数量、以及携 带聚类标识和样本属性标识的和值给合并节点。同上例,实际应用中,为了加快合并速度,可以采用多个合并节点并行合并的方式。并由主控节点预先分配每个合并节点进行合并的对应聚类的对应样本属性。一个合并 节点至少合并一个聚类的一个样本属性,当然,一个合并节点也可以合并两个或多个样本 属性。传送样本数量、以及携带聚类标识和样本属性标识的所述和值给合并节点的具体 方法可以有如下两种方法一由主控节点将各合并节点进行合并的对应样本属性,预先通知给各计算 节点,所述计算节点根据每个合并节点进行合并的对应聚类的对应样本属性,将本地统计 出的对应聚类的样本数量以及计算出的对应聚类的对应样本属性的属性值的和值,上报给 对应的合并节点;方法二 由每个合并节点向每个计算节点收集信息。每个合并节点根据自身进行 合并的对应聚类的对应样本属性,分别向每个计算节点请求上传对应聚类的对应样本属性 的统计信息;每个计算节点向每个合并节点返回本地统计出的对应聚类的样本数量、以及 计算出的对应聚类的对应样本属性的属性值的和值,并携带与和值对应的聚类标识和样本 属性标识。步骤S405、合并节点对每一个聚类的每一个样本属性根据每个计算节点传送的样 本数量及和值,计算出每一个聚类的每一个样本属性的属性值的均值,并传送给主控节点。其中,均值的计算,就是对每一个聚类的每一个样本属性,将计算节点传送的对应 该聚类的该样本属性的和值进行累加,得到总和值,再累加计算节点传送的对应该聚类的 样本数量,得到样本总数量,用总和值除了样本总数量,得到该聚类该样本属性的属性值的 均值。步骤S406、主控节点根据接收的每一个聚类的每一个样本属性的属性值的均值, 得到每一个聚类的虚拟聚类中心点信息,计算每一个聚类的虚拟聚类中心点和其当前的聚 类中心点之间的距离,并与设定的距离阈值比较。步骤S407、主控节点对每一个聚类分别判断计算出的距离是否大于设定的距离阈 值;只要存在一个聚类,其计算出的对应距离大于设定的距离阈值,执行步骤S408,仅当全 部聚类计算出的对应距离都小于设定的距离阈值时,执行步骤S409。步骤S408、主控节点将计算出的距离值大于设定阈值的对应聚类的虚拟聚类中心 点信息更新当前保存的该聚类的聚类中心点信息,发送本次更新后的和本次未更新的每一 个聚类的聚类中心点信息给计算节点,转至步骤S403 ;步骤S409、主控节点将最后一次更新后的聚类中心点信息作为每一个聚类的实际 聚类中心点信息。一实施方式中,主控节点获取到每一个聚类的实际聚类中心点信息后,还可以利 用各计算节点并行计算出每一个样本所属聚类,具体为所述主控节点将每一个聚类的实际聚类中心点信息传送给每个计算节点;每个计算节点分别计算分配的分块样本中每个样本在样本空间中的对应样本点 与各实际聚类中心点的距离,将每个样本归属到距离最小的对应实际聚类中心点所属聚 类,并返回样本标识与所属聚类的聚类标识给主控节点;主控节点根据每个计算节点返回的样本标识与所属聚类的聚类标识,确定出每个 样本所属聚类。
上述聚类实现方法二中,采用了两个以上的计算节点并行地参与聚类计算,提高 了计算效率。且每个计算节点仅处理一部分样本数据,解决了海量数据由单机无法实现处 理的问题。且可以按照样本属性数量设置相应数量的合并节点,使合并过程也并行化,进 一步提高合并处理速度。相对于上述聚类实现方法一,由于样本的样本属性一般为50-100 个,最多设置的合并节点数量可以是聚类数量乘以样本属性数量的乘积,因此,可以有大量 的合并节点参与合并处理,大大提高并行处理效率。上述聚类实现方法中,可以采用Map/Reduce函数来实现。在各计算节点中采用 Map函数并行地参与聚类计算,输出本地属于各聚类的样本数量以及各聚类包含的各样本 的样本值的和值,并传送给合并节点。合并节点采用Reduce函数,针对每一个聚类根据每 个计算节点传送的样本数量及和值,求取均值,得到每一个聚类的虚拟聚类中心点信息。 Map/Reduce函数中的Key和Value对,根据实际需要处理的对象及处理结果分别确定。上述方法一中Map函数的处理过程每个Map函数处理一条样本数据,计算该样本数据与各聚类 初始中心点(或各聚类的上一次中心点)的距离,得到距离最近的一个中心点。Map函数的 输出key为距离最近的中心点的标识,value为对应的样本数据。每一个计算节点可以采用Combiner函数进行本地合并,收集所有key相同的样本 数据,输出key为该中心点的标识,value为样本数据的各属性分别向量求和的和值以及样 本个数。合并节点运行reduce函数,Reduce函数的输入为combiner函数的输出。Reduce 函数处理过程为,将相同key的value收集,求得向量求和和个数求和,再得到均值即向 量求和/个数求和,得到新的中心点。Reduce函数的输出为输出key为新的中心点标识, value为新中心点数据,将结果写入配置文件,作为下一次重复执行的初始中心点。上述方法二中计算节点运行Map函数及Combiner函数过程同上,不同之处在于Combiner函数 的输出是将key设为中心点标识_属性名称,value为该属性值的求和及个数和。合并节 点运行reduce函数,Reduce函数的输入为combiner函数的输出。Reduce处理过程,求得 中心点标示_属性名称的均值,输出至配置文件。基于同一发明构思,根据本发明上述实施例提供的聚类实现方法一,本发明提供 一种相应的聚类实现系统,其结构示意图如图5所示,包括主控节点51、至少两个计算节 点52及合并节点53 ;主控节点51,用于对样本分块,并将分块样本分配给计算节点52,将分配的分块 样本和每一个聚类的聚类中心点信息传送给每个计算节点52 ;以及接收合并节点53传送 的每一个聚类的虚拟聚类中心点信息;并根据接收的每一个聚类的虚拟聚类中心点信息和 当前保存的每一个聚类的聚类中心点信息以及设定的中心点更新策略,当确定出至少由一 个聚类的虚拟聚类中心点信息更新当前保存的该聚类的聚类中心点信息时,发送本次更新 后的和本次未更新的每一个聚类的聚类中心点信息给计算节点52,当确定出每一个聚类的 聚类中心点信息都不再更新时,将最后一次更新后的聚类中心点信息作为每一个聚类的实 际聚类中心点信息;计算节点52,用于分别计算分配的分块样本中每个样本在样本空间中的对应样本点与各聚类中心点的距离,将每个样本归属到距离最小的对应聚类中心点所属聚类;对每 一个聚类分别统计本地属于该聚类的样本数量以及计算属于该聚类的各样本的样本值的 和值,并传送样本数量及和值给合并节点53 ;合并节点53,用于对每一个聚类根据每个计算节点传送的样本数量及和值,求取 均值,得到每一个聚类的虚拟聚类中心点信息,并传送给主控节点51。一具体实施例中,主控节点51还用于,将获得的每一个聚类的实际聚类中心点信 息传送给每个计算节点52 ;以及根据每个计算节点52返回的样本标识与所属聚类的聚类 标识,确定出每个样本所属聚类;每个计算节点52还用于,分别计算分配的分块样本中每个样本在样本空间中的 对应样本点与各实际聚类中心点的距离,将每个样本归属到所述距离最小的对应实际聚类 中心点所属聚类,并返回样本标识与所属聚类的聚类标识给主控节点51。一实施例中,合并节点53至少包括两个,合并节点53的最大数量与聚类的数量相寸。主控节点51还用于,预先给每个合并节点53分配至少一个进行合并的聚类。图5中,示意出各计算节点52和各合并节点53分别为不同的节点。实际应用中, 计算节点52和合并节点53除全部为不同的节点外,还可以是每一个计算节点52或部分计算节点52为合并节点53 ;或者部分计算节点52为 部分合并节点53。基于同一发明构思,根据本发明上述实施例提供的聚类实现方法二,本发明提供 一种相应的聚类实现系统,其结构示意图如图6所示,包括主控节点61、至少两个计算节 点62及合并节点63 ;主控节点61,用于对样本分块,并将分块样本分配给至少两个计算节点,将分配的 分块样本和每一个聚类的聚类中心点信息传送给每个计算节点62 ;以及接收合并节点63 传送的每一个聚类的每一个样本属性的属性值的均值;并根据接收的每一个聚类的每一个 样本属性的属性值的均值,得到每一个聚类的虚拟聚类中心点信息,根据当前保存的每一 个聚类的聚类中心点信息以及设定的中心点更新策略,当确定出至少由一个聚类的虚拟聚 类中心点信息更新当前保存的该聚类的聚类中心点信息时,发送本次更新后的和本次未更 新的每一个聚类的聚类中心点信息给计算节点62 ;当确定出每一个聚类的聚类中心点信 息都不再更新时,将最后一次更新后的聚类中心点信息作为每一个聚类的实际聚类中心点 fn息;计算节点62,用于分别计算分配的分块样本中每个样本在样本空间中的对应样本 点与各聚类中心点的距离,将每个样本归属到距离最小的对应聚类中心点所属聚类;分别 统计本地属于每一个聚类的样本数量以及计算属于该聚类的各样本包含的每一个样本属 性的属性值的和值,并传送样本数量、以及携带聚类标识和样本属性标识的和值给合并节 点63 ;合并节点63,用于对每一个聚类的每一个样本属性根据计算节点传送的样本数量 及和值,计算出每一个聚类的每一个样本属性的属性值的均值,并传送给主控节点61。一实施例中,主控节点61还用于,将每一个聚类的实际聚类中心点信息传送给每 个计算节点62 ;以及根据每个计算节点62返回的样本标识与所属聚类的聚类标识,确定出每个样本所属聚类;计算节点62,还用于分别计算分配的分块样本中每个样本在样本空间中的对应样 本点与各实际聚类中心点的距离,将每个样本归属到所述距离最小的对应实际聚类中心点 所属聚类,并返回样本标识与所属聚类的聚类标识给主控节点61。—实施例中,合并节点63至少包括两个,合并节点的最大数量与聚类的数量和样 本的样本属性的数量的乘积相等。主控节点61还用于,预先给每个合并节点分配至少一个聚类的进行合并的一个 样本属性。图6中,示意出各计算节点62和各合并节点63分别为不同的节点。实际应用中, 计算节点62和合并节点63除全部为不同的节点外,还可以是每一个计算节点62或部分计算节点62为合并节点;或者部分计算节点62为部分 合并节点63。本发明提供的聚类实现方法及系统中,将待处理的样本分块后分配给不同的计算 节点处理,解决了海量数据无法全部由单机读入内存进行计算处理的问题;本发明提供的 聚类实现方法中,采用了至少两个计算节点并行地参与聚类计算过程,加快了计算速度;再 通过合并节点进行有效合并,充分利用系统中各节点的计算资源,有效解决了现有技术对 海量数据无法实现聚类处理及处理效率低的问题。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
一种聚类实现方法,其特征在于,包括步骤1、主控节点对样本分块,并将分块样本分配给至少两个计算节点,将分配的分块样本和每一个聚类的聚类中心点信息传送给每个所述计算节点;步骤2、每个所述计算节点分别计算分配的分块样本中每个样本在样本空间中的对应样本点与各聚类中心点的距离,将每个样本归属到所述距离最小的对应聚类中心点所属聚类;对每一个聚类分别统计本地属于该聚类的样本数量以及计算属于该聚类的各样本的样本值的和值,并传送所述样本数量和所述和值给合并节点;步骤3、所述合并节点对每一个聚类根据每个所述计算节点传送的所述样本数量和所述和值,求取均值,得到每一个聚类的虚拟聚类中心点信息,并传送给所述主控节点;步骤4、所述主控节点根据接收的每一个聚类的虚拟聚类中心点信息和当前保存的每一个聚类的聚类中心点信息以及设定的中心点更新策略,当确定出至少由一个聚类的虚拟聚类中心点信息更新当前保存的该聚类的聚类中心点信息时,发送本次更新后的和本次未更新的每一个聚类的聚类中心点信息给所述至少两个计算节点,重复上述步骤2和步骤3;当确定出每一个聚类的聚类中心点信息都不再更新时,将最后一次更新后的聚类中心点信息作为每一个聚类的实际聚类中心点信息。
2.如权利要求1所述的聚类实现方法,其特征在于,还包括所述主控节点将每一个聚类的所述实际聚类中心点信息传送给每个所述计算节点;每个所述计算节点分别计算分配的分块样本中每个样本在样本空间中的对应样本点 与各实际聚类中心点的距离,将每个样本归属到所述距离最小的对应实际聚类中心点所属 聚类,并返回样本标识与所属聚类的聚类标识给所述主控节点;所述主控节点根据每个所述计算节点返回的样本标识与所属聚类的聚类标识,确定出 每个样本所属聚类。
3.如权利要求1或2所述的聚类实现方法,其特征在于,所述合并节点至少包括两个; 由所述主控节点预先分配每个合并节点进行合并的对应聚类;步骤2中所述传送所述样本 数量和所述和值给合并节点,具体包括所述计算节点根据每个合并节点进行合并的对应聚类,将本地统计出的属于所述对应 聚类的样本数量以及计算出的属于所述对应聚类的各样本的样本值的和值,上报给对应的 合并节点;或者每个合并节点根据自身进行合并的对应聚类,分别向每个所述计算节点请求上传所述 对应聚类的统计信息;每个所述计算节点向每个合并节点返回其请求的所述对应聚类在本 地统计出的样本数量以及计算出的属于所述对应聚类的各样本的样本值的和值。
4.如权利要求3所述的聚类实现方法,其特征在于,由所述主控节点预先分配每个合 并节点进行合并的对应聚类,包括由所述主控节点给每个所述合并节点分配至少一个进行合并的聚类。
5.一种聚类实现方法,其特征在于,包括步骤1、主控节点对样本分块,并将分块样本分配给至少两个计算节点,将分配的分块 样本和每一个聚类的聚类中心点信息传送给每个所述计算节点;步骤2、每个所述计算节点分别计算分配的分块样本中每个样本在样本空间中的对应 样本点与各聚类中心点的距离,将每个样本归属到所述距离最小的对应聚类中心点所属聚类;分别统计本地属于每一个聚类的样本数量以及计算属于该聚类的各样本包含的每一个 样本属性的属性值的和值,并传送所述样本数量、以及携带聚类标识和样本属性标识的所 述和值给合并节点;步骤3、所述合并节点对每一个聚类的每一个样本属性根据每个所述计算节点传送的 所述样本数量和所述和值,计算出每一个聚类的每一个样本属性的属性值的均值,并传送 给所述主控节点;步骤4、所述主控节点根据接收的每一个聚类的每一个样本属性的属性值的均值,得到 每一个聚类的虚拟聚类中心点信息,并根据当前保存的每一个聚类的聚类中心点信息以及 设定的中心点更新策略,当确定出至少由一个聚类的虚拟聚类中心点信息更新当前保存的 该聚类的聚类中心点信息时,发送本次更新后的和本次未更新的每一个聚类的聚类中心点 信息给所述至少两个计算节点,重复上述步骤2和步骤3 ;当确定出每一个聚类的聚类中心 点信息都不再更新时,将最后一次更新后的聚类中心点信息作为每一个聚类的实际聚类中 心点信息。
6.如权利要求5所述的聚类实现方法,其特征在于,还包括所述主控节点将每一个聚类的所述实际聚类中心点信息传送给每个所述计算节点;每个所述计算节点分别计算分配的分块样本中每个样本在样本空间中的对应样本点 与各实际聚类中心点的距离,将每个样本归属到所述距离最小的对应实际聚类中心点所属 聚类,并返回样本标识与所属聚类的聚类标识给所述主控节点;所述主控节点根据每个所述计算节点返回的样本标识与所属聚类的聚类标识,确定出 每个样本所属聚类。
7.如权利要求5或6所述的聚类实现方法,其特征在于,所述合并节点至少包括两个; 由所述主控节点预先分配每个合并节点进行合并的对应聚类的对应样本属性;步骤2中所 述传送所述样本数量、以及携带聚类标识和样本属性标识的所述和值给合并节点,具体包 括所述计算节点根据每个合并节点进行合并的对应聚类的对应样本属性,将本地统计出 的对应聚类的样本数量以及计算出的对应聚类的所述对应样本属性的属性值的和值,上报 给对应的合并节点;或者每个合并节点根据自身进行合并的对应聚类的对应样本属性,分别向每个所述计算节 点请求上传所述对应聚类的的对应样本属性的统计信息;每个所述计算节点根据每个所述 合并节点请求的对应聚类的对应样本属性,向每个合并节点返回本地统计出的对应聚类的 样本数量、以及计算出的该聚类的所述对应样本属性的属性值的和值,并携带与所述和值 对应的聚类标识和样本属性标识。
8.如权利要求7所述的聚类实现方法,其特征在于,由所述主控节点预先分配每个合 并节点进行合并的对应样本属性,包括由所述主控节点给每个所述合并节点分配至少一个聚类的进行合并的一个样本属性。
9.一种聚类实现系统,其特征在于,包括主控节点、至少两个计算节点及合并节点;所述主控节点,用于对样本分块,并将分块样本分配给所述至少两个计算节点,将分配的分块样本和每一个聚类的聚类中心点信息传送给每个所述计算节点;以及接收所述合并节点传送的每一个聚类的虚拟聚类中心点信息;并根据接收的每一个聚类的虚拟聚类中心点信息和当前保存的每一个聚类的聚类中心点信息以及设定的中心点 更新策略,当确定出至少由一个聚类的虚拟聚类中心点信息更新当前保存的该聚类的聚类 中心点信息时,发送本次更新后的和本次未更新的每一个聚类的聚类中心点信息给所述至 少两个计算节点,当确定出每一个聚类的聚类中心点信息都不再更新时,将最后一次更新 后的聚类中心点信息作为每一个聚类的实际聚类中心点信息;所述计算节点,用于分别计算分配的分块样本中每个样本在样本空间中的对应样本点 与各聚类中心点的距离,将每个样本归属到所述距离最小的对应聚类中心点所属聚类;对 每一个聚类分别统计本地属于该聚类的样本数量以及计算属于该聚类的各样本的样本值 的和值,并传送所述样本数量和所述和值给合并节点;所述合并节点,用于对每一个聚类根据每个所述计算节点传送的所述样本数量和所述 和值,求取均值,得到每一个聚类的虚拟聚类中心点信息,并传送给所述主控节点。
10.如权利要求9所述的聚类实现系统,其特征在于,所述所述主控节点还用于,将每 一个聚类的所述实际聚类中心点信息传送给每个所述计算节点;以及根据每个所述计算节 点返回的样本标识与所属聚类的聚类标识,确定出每个样本所属聚类;每个所述计算节点还用于,分别计算分配的分块样本中每个样本在样本空间中的对应 样本点与各实际聚类中心点的距离,将每个样本归属到所述距离最小的对应实际聚类中心 点所属聚类,并返回样本标识与所属聚类的聚类标识给所述主控节点。
11.如权利要求9或10所述的聚类实现系统,其特征在于,所述合并节点至少包括两 个,所述合并节点的最大数量与所述聚类的数量相等;所述主控节点还用于,预先给每个合并节点分配至少一个进行合并的聚类。
12.如权利要求11所述的聚类实现系统,其特征在于,所述计算节点和所述合并节点 全部为不同的节点;或者全部计算节点或部分计算节点为合并节点;或者部分计算节点为部分合并节点。
13.一种聚类实现系统,其特征在于,包括主控节点、至少两个计算节点及合并节点;所述主控节点,用于对样本分块,并将分块样本分配给至少两个计算节点,将分配的分块样本和每一个聚类的聚类中心点信息传送给每个所述计算节点;以及接收所述合并节点传送的每一个聚类的每一个样本属性的属性值的均值;并根据接 收的每一个聚类的每一个样本属性的属性值的均值,得到每一个聚类的虚拟聚类中心点信 息,根据当前保存的每一个聚类的聚类中心点信息以及设定的中心点更新策略,当确定出 至少由一个聚类的虚拟聚类中心点信息更新当前保存的该聚类的聚类中心点信息时,发送 本次更新后的和本次未更新的每一个聚类的聚类中心点信息给所述至少两个计算节点;当 确定出每一个聚类的聚类中心点信息都不再更新时,将最后一次更新后的聚类中心点信息 作为每一个聚类的实际聚类中心点信息;所述计算节点,用于分别计算分配的分块样本中每个样本在样本空间中的对应样本点 与各聚类中心点的距离,将每个样本归属到所述距离最小的对应聚类中心点所属聚类;分 别统计本地属于每一个聚类的样本数量以及计算属于该聚类的各样本包含的每一个样本 属性的属性值的和值,并传送所述样本数量、以及携带聚类标识和样本属性标识的所述和 值给合并节点;所述合并节点,用于对每一个聚类的每一个样本属性根据每个所述计算节点传送的所 述样本数量和所述和值,计算出每一个聚类的每一个样本属性的属性值的均值,并传送给 所述主控节点。
14.如权利要求13所述的聚类实现系统,其特征在于,所述主控节点还用于,将每一个 聚类的所述实际聚类中心点信息传送给每个所述计算节点;以及根据每个所述计算节点返 回的样本标识与所属聚类的聚类标识,确定出每个样本所属聚类;每个所述计算节点,还用于分别计算分配的分块样本中每个样本在样本空间中的对应 样本点与各实际聚类中心点的距离,将每个样本归属到所述距离最小的对应实际聚类中心 点所属聚类,并返回样本标识与所属聚类的聚类标识给所述主控节点。
15.如权利要求13或14所述的聚类实现系统,其特征在于,所述合并节点至少包括 两个,所述合并节点的最大数量与所述聚类的数量和所述样本的样本属性的数量的乘积相 等;所述主控节点还用于,预先给每个合并节点分配至少一个聚类的进行合并的一个样本 属性。
16.如权利要求15所述的聚类实现系统,其特征在于,所述计算节点和所述合并节点 全部为不同的节点;或者全部计算节点或部分计算节点为合并节点;或者部分计算节点为部分合并节点。
全文摘要
本发明公开了聚类实现方法及系统。包括由主控节点对样本分块,并将分块样本分配给至少两个计算节点,由各计算节点并行参与计算,将本地样本归属到对应聚类中,并对每一个聚类统计本地各样本的样本值的和值传送给合并节点,再由合并节点得到每一个聚类的虚拟聚类中心点信息,并传送给主控节点,由主控节点判断是否进行聚类中心点更新,以及是否启动下一轮聚类计算。本发明通过多个节点参与聚类实现过程,在聚类计算及合并过程中通过采用多个节点并行处理,解决了现有技术对海量数据无法实现聚类处理及处理效率低的问题。
文档编号G06F17/30GK101996197SQ20091009186
公开日2011年3月30日 申请日期2009年8月31日 优先权日2009年8月31日
发明者何清, 周文辉, 孙少陵, 徐萌, 罗治国, 赵卫中, 邓超, 马慧芳, 高丹 申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1