专利名称:一种数据挖掘系统中数据聚类的方法、系统及装置的制作方法
技术领域:
本发明涉及数据挖掘技术领域,尤其涉及一种数据挖掘系统中数据聚类的方法、 系统及装置。
背景技术:
数据挖掘又称数据库中的知识发现,是指从大量的不完全的、有噪声的、模糊的数 据中提取隐含的、未知的、非平凡的及有潜在应用价值的信息或模式,融合了数据库、人工 智能、机器学习、统计学等多个领域的理论和技术。数据挖掘工具能够对将来的趋势和行为 进行预测,从而很好地支持人们的决策。在数据挖掘处理中,聚类(Clustering)是将数据对象分组成为多个类或簇 (cluster),属于同一个簇的对象之间具有较高的相似度,属于不同簇的对象之间具有较低 的相似度。相似度一般根据描述对象的属性值计算得到,而对象之间的距离是常用的度量 方式。目前,聚类分析已经广泛地用在许多领域,例如,在商务领域,聚类能帮助市场分析人 员从客户基本库中发现不同的客户群,并且用购买模式来刻画不同的客户群的特征。通过 聚类,能够对客户消费行为及消费心理等多种因素进行分析,从而得出客户在消费习惯、生 活方式、社会联系等方面的特征,按不同特征划分客户群,并针对不同客户群进行不同的市 场营销活动和客户服务。目前,聚类方法多采用PAM(PArtitioning method,划分方法)(也称k_中心点对 象算法),PAM是给定一个有N个元组或者纪录的数据集,构造K个分组,每一个分组代表一 个聚类,K < N,其中,构造的K个分组满足下列条件(1)每一个分组至少包含一个数据纪录;(2)每一个数据纪录属于且仅属于一个分组;对于给定的K,首先给出一个初始的分组方法,以后通过反复迭代的方法改变分 组,使得每一次改进之后的分组方案都优于前一次分组,即同一分组中的对象的相似度越 高越好,不同分组中对象的相似度越小越好。PAM用簇中位置最靠近中心的对象作为代表对象,然后反复地用非代表对象来代 替代表对象,试图找出更好的中心点对象,在反复迭代的过程中,所有可能的“对象对”被分 析,每个对中的一个对象为中心点对象,另一个为非代表对象。一个对象代表可以被最大平 方-误差值减少的对象代替。一个非代表对象Oh是否是当前一个代表对象Oi的一个好的 替代,对于每个非中心点对象0j,有以下四种情况需要考虑,然后计算,如果为负,则可以替 换(1) Oj当前隶属于0i,如果Oi被Oh替换,且Oj离另一个Om最近,那么Oj被分配 给0m,则替换代价为(^^[(!(^!^-(!(^^其中,土 ! =m。(2) Oj当前隶属于0i,如果Oi被Oh替换,且Oj离Oh最近,那么Oj被分配给0h, 则替换代价为 Cjih = d(j, h)-d(j,i)。(3)0j当前隶属于0m,m ! = i,如果Oi被Oh替换,且Oj仍然离Om最近,那么Oj被分配给0m,则替换代价为Cjih = O。(4)0j当前隶属于Om,m ! = i,如果Oi被Oh替换,且Oj离Oh最近,那么Oj被分 配给Oh,则替换代价为Cjih = d(j, h)-d(j,m)。根据以上原理,PAM的计算过程如图1所述,主要包括如下步骤,其中,假设要得到 的簇的数目为k,并且数据库中包含η个对象步骤101、任意选择k个对象作为初始的簇中心点对象;步骤102、依次计算每个非中心点对象到k个中心点对象的距离,并指派每个非中 心点对象给离他最近的中心点对象所表示的簇,直到所有非中心点对象被指派到对应的簇 中;步骤103、选择一个未被选择的中心点对象Oi ;步骤104、选择一个未被选择的非中心点对象Oh ;步骤105、计算用Oh代替Oi的总代价并记录在S中;步骤106、重复步骤104至步骤105直到所有非中心点对象都被选择过;步骤107、重复步骤103至步骤106直到所有中心点对象都被选择过;步骤108、在S中记录的总代价有小于0的存在,则利用对应最小S值的非中心点 对象替代中心点对象,形成新的k个中心点对象的集合;步骤109、重复步骤103至步骤108直到S中记录的总代价都大于0。CLARA (Cluster Larger Application,随机搜索聚类算法)也是较常见的聚类方 法,该算法先抽取数据集合的多个样本,然后用PAM方法在抽样的样本中寻找最佳的k中心 点对象,返回最好的聚类结果作为输出。上述数据挖掘系统中的数据聚类方法,主要工作在于迭代计算用非中心点对象替 代中心点对象后的代价,这是一个很大的开销。当面临高达101°个样本对象的海量数据挖 掘时,由于单个服务器的数据存储能力有限,因此导致无法处理海量数据,并且,上述算法 中所有的计算过程都是串行执行,因此数据挖掘的效率低。
发明内容
有鉴于此,本发明实施例提供一种数据挖掘系统中数据聚类的方法、系统及装置, 用于解决现有数据聚类方法无法处理海量数据并且数据挖掘效率低的问题。本发明实施例通过如下技术方案实现根据本发明实施例的一个方面,提供了一种数据挖掘系统中数据聚类的方法。根据本发明实施例提供的数据挖掘系统中数据聚类的方法,包括A、主控节点对数据对象进行分块,将分块后的数据对象分发给至少两个计算节点。B、以串行方式或并行方式控制所述每个计算节点执行计算利用保存的数据对象中的非中心点对象分别替换确定的设定个中心点对象 后对应的替换代价;C、所述主控节点获取所述每个计算节点的执行结果,并判断获取的执行结果中是 否存在小于零的替换代价;若是,确定替换同一中心点对象的多个非中心点对象中具有小于零且最小替换代价的非中心点对象,利用所述非中心点对象替换所述中心点对象,并返回步骤B;若否,则将当前各中心点对象及其对应簇中包括的数据对象确定为最终聚类结果 并结束。根据本发明实施例的另一个方面,还提供了一种数据挖掘系统中数据聚类的系 统。根据本发明实施例提供的数据挖掘系统中数据聚类的系统,包括控制节点以及至 少两个计算节点;其中,所述控制节点,用于对数据对象进行分块,将分块后的数据对象分发给所述至少 两个计算节点,并以串行方式或并行方式控制所述每个计算节点执行计算利用保存的数 据对象中的非中心点对象分别替换确定的设定个中心点对象后对应的替换代价;以及,获 取所述每个计算节点的执行结果,并判断获取的执行结果中是否存在小于零的替换代价; 若是,确定替换同一中心点对象的多个非中心点对象中具有小于零且最小替换代价的非中 心点对象,利用所述非中心点对象替换所述中心点对象,并继续以串行方式或并行方式控 制所述每个计算节点执行计算利用保存的数据对象中的非中心点对象分别替换确定的设 定个中心点对象后对应的替换代价,直到所述每个计算节点的执行结果中不存在小于零的 替换代价;若否,则将当前各中心点对象及其对应簇中包括的数据对象确定为最终聚类结 果并结束;所述计算节点,用于根据所述控制节点的控制,计算利用保存的数据对象中的非 中心点对象分别替换确定的设定个中心点对象后对应的替换代价。根据本发明实施例的另一个方面,还提供了一种控制节点。根据本发明实施例提供的控制节点,包括分配单元,用于对数据对象进行分块,将分块后的数据对象分发给至少两个计算 节占.
I— /、、、 控制单元,用于以串行方式或并行方式控制所述每个计算节点执行计算利用保存的数据对象中的非中心点对象分别替换确定的设定个中心点对象 后对应的替换代价;汇总单元,用于获取所述每个计算节点的执行结果;判断单元,用于判断所述汇总单元获取的执行结果中是否存在小于零的替换代 价;若是,确定替换同一中心点对象的多个非中心点对象中具有小于零且最小替换代 价的非中心点对象,利用所述非中心点对象替换所述中心点对象,并触发所述控制单元动 作;若否,则将当前各中心点对象及其对应簇中包括的数据对象确定为最终聚类结果 并结束。根据本发明实施例的另一个方面,还提供了一种计算节点。根据本发明实施例提供的计算节点,包括数据存储单元,用于存储控制节点分发的数据对象;计算单元,用于根据所述控制节点的控制,计算利用所述数据存储单元存储的数 据对象中的非中心点对象分别替换确定的设定个中心点对象后对应的替换代价。
通过本发明实施例提供的上述至少一个技术方案,由控制节点将待挖掘的数据对 象分块,将分块数据分发至至少两个计算节点中,并采用并行或串行方式控制每个计算机 计算利用保存的数据对象中的非中心点对象分别替换确定的设定个中心点对象后对应的 替换代价,并获取每个计算节点的执行结果,判断获取的执行结果中是否存在小于零的替 换代价,若是,则确定替换同一中心点对象的多个非中心点对象中具有小于零且最小替换 代价的非中心点对象,利用所述非中心点对象替换所述中心点对象,并返回控制每个计算 机计算利用保存的数据对象中的非中心点对象分别替换确定的设定个中心点对象后对应 的替换代价的步骤,直到各计算节点计算得到的替换代价均大于等于零;若否,则将当前各 中心点对象及其对应簇中包括的数据对象确定为最终聚类结果并结束。根据本发明提供的 技术方案,控制节点能够控制将待处理数据分布至多个计算节点,从而提高了数据的处理 量,能够处理海量数据的挖掘需求。并且,根据本发明提供的技术方案,可以将数据分布至 多个计算节点处理,从而对于单个计算节点而言,降低了数据处理负担,相应地提高了计算 效率,尤其在计算节点内部采用并行处理方式的情况下,更进一步提高了数据处理效率。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变 得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明 书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明实施 例一起用于解释本发明,并不构成对本发明的限制。在附图中图1为本发明背景技术提供的PAM的计算过程流程图;图2为本发明实施例提供的数据挖掘系统中数据聚类的方法流程图;图3为本发明实施例提供的采用完全串行方式的数据聚类的方法流程图;图4为本发明实施例提供的采用部分串行方式的数据聚类的方法流程图;图5为本发明实施例提供的并行替换各中心点对象的流程图;图6为本发明实施例提供的初始化簇的流程图;图7为本发明实施例提供的数据挖掘系统中数据聚类的系统结构示意图;图8为本发明实施例提供的控制节点结构示意图;图9为本发明实施例提供的操作节点结构示意图。
具体实施例方式为了给出处理海量数据并且提高数据挖掘效率的实现方案,本发明实施例提供了 一种数据挖掘系统中数据聚类的方法、系统及装置,以下结合说明书附图对本发明的优选 实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于 限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。根据本发明实施例,首先提供了一种数据挖掘系统中数据聚类的方法,如图2所 示,包括步骤201、主控节点对数据对象进行分块,将分块数据对象分发给至少两个计算节点。
步骤202、以串行方式或并行方式控制每个计算节点计算利用保存的数据对象中 的非中心点对象分别替换确定的设定个中心点对象后对应的替换代价。该步骤202中,以串行方式控制每个计算节点计算替换代价,即控制各计算节点 依次执行上述计算过程,例如,将数据对象分发至计算节点1以及计算节点2,根据该串行 控制方式,可以首先控制计算节点1完成计算过程并获取计算结果后,控制计算节点2执行 计算过程;以并行方式控制每个计算节点计算替换代价,即控制各计算节点同步执行上述计 算过程,例如,将数据对象分配并分发至计算节点1以及计算节点2,根据该并行控制方式, 同时向计算节点1以及计算节点2发送控制指令,指示计算节点1以及计算节点2执行计 算过程。步骤203、主控节点获取每个计算节点的执行结果。步骤204、主控节点判断从各计算节点获取的执行结果中是否存在小于零的替换 代价,若是,执行步骤205,若否,执行步骤206。步骤205、确定替换同一中心点对象的多个非中心点对象中具有小于零且最小替 换代价的非中心点对象,并利用确定出的非中心点对象替换该中心点对象,返回步骤202 ;步骤206、将当前各中心点对象及其对应簇中包括的数据对象确定为最终聚类结 果并结束。上述流程中,将待处理的数据对象分配并分布至多个计算节点处理,降低了单个 计算节点处理数据的负担,提高了数据处理的效率,尤其在以并行方式控制多个计算节点 处理数据时,各计算节点能够对各自保存的数据同步处理,在计算效率方面有了很大提高。根据本发明优选实施例,各计算节点接收控制节点发送的用于指示计算替换代价 的控制命令后,计算利用保存的数据对象中的非中心点对象分别替换确定的设定个中心点 对象后对应的替换代价,具体地,各计算节点内部执行的替换代价的计算过程可以采用完 全串行方式、部分并行方式或完全并行方式,以下,针对该几种情况分别说明实施例一、完全串行方式如图3所示,本发明实施例提供的计算节点采用完全串行方式计算利用保存的数 据对象中的非中心点对象分别替换确定的设定个中心点对象后对应的替换代价时,包括如 下步骤步骤301、选择一个未被选择过的非中心点对象作为待替换对象Oh ;步骤302、选择一个未被选择过的中心点对象Oi ;步骤303、从保存的数据对象中除待替换对象Oh以外的非中心点对象中选择一个 未被选择过的非中心点对象作为待测试点Oj ;步骤304、依次计算选择的待测试点Oj分别与待替换对象Oh以及确定的K个中心 点对象中除中心点对象Oi以外的中心点对象的距离;步骤305、计算得到的各距离中的最小距离减去待测试点Oj与其当前归属的簇对 应中心点对象的距离得到的差值(即测试点替换代价);步骤306、判断保存的数据对象中除待替换对象Oh以外的非中心点对象是否均被 选择作为待测试点0j,若否,返回步骤303,若是,执行步骤307 ;步骤307、将通过步骤305计算得到的差值相加得到待替换对象Oh替换中心点对象Oi的替换代价S,并执行步骤308 ;步骤308、判断保存的数据对象中所有中心点对象是否均被选择过,若否,返回步 骤302,若是,执行步骤309 ;步骤309、判断保存的数据对象中所有非中心点对象是否均被选择作为待替换对 象0h,若否,返回步骤301,若是,结束。实施例二、部分并行方式该实施例中,部分并行方式包括如下几种计算过程的一种或两种的组合计算过程1、针对选择的待替换对象Oh、中心点对象Oi以及待测试对象Oj,并行计 算该待测试点Oj到K个中心点对象的距离,其中,K个中心点对象包括选择出的待替换对 象0h(用于替换中心点对象0i、以及除Oi以外的(K-I)个中心点对象(即将上述流程中以 串行方式执行的步骤304以并行方式执行);计算过程2、针对选择的针对选择的待替换对象Oh以及中心点对象0i,并行计算 各待测试对象Oj对应的测试点替换代价(即将上述流程中以串行方式执行的步骤303 步骤306以并行方式执行);计算过程3、针对选择的针对选择的待替换对象0h,并行计算该待替换对象Oh替 换各中心点对象Oi的替换代价(即将上述流程中以串行方式执行的步骤302 步骤308 以并行方式执行)。以上几种并行过程仅为理解本发明实施例提供的部分并行方式的距离,实际应用 中,可以对各个计算过程的计算过程的并行处理以及串行处理进行灵活组合,例如,可以同 时选择多个待替换对象0h,并行计算选择的各待替换对象Oh分别替换中心点对象时对应 的替换代价,在具体计算各待替换对象Oh分别替换中心点对象时对应的替换代价时,可以 采用内部串行方式,例如,针对选定待替换对象0h,可以依此计算该选定待替换对象Oh替 换各中心点对象的替换代价;再例如,可以并行计算选定待替换对象Oh分别替换各中心点 对象的替换代价,在具体计算选定待替换对象Oh替换选定中心点对象Oi时,可以依次计算 各测试点对应的测试点替换代价。根据本发明实施例,各个计算过程之间的并行执行或串 行执行可以灵活组合,此处不再一一列举。如图4所示,以采用上述部分串行方式中的计算过程1以及计算过程2的组合为 例,本发明实施例提供的计算节点计算利用保存的数据对象中的非中心点对象分别替换确 定的设定个中心点对象后对应的替换代价时,包括如下步骤步骤401、选择一个未被选择过的非中心点对象作为待替换对象Oh ;步骤402、选择一个未被选择过的中心点对象Oi ;步骤403、针对选择的待替换对象Oh以及中心点对象0i,并行计算该待替换对象 Oh对应的各测试点的测试点替换代价。步骤404、将各测试点替换代价相加得到该待替换对象Oh替换该中心点对象Oi的 替换代价。步骤405、判断保存的数据对象中所有中心点对象是否均被选择过,若否,返回步 骤402,若是,执行步骤406 ;步骤406、判断保存的数据对象中所有非中心点对象是否均被选择作为待替换对 象0h,若否,返回步骤401,若是,结束。
上述步骤403中,待替换对象Oh对应的各测试点即所有数据对象中除被选择为替 换对象Oh的非中心点对象以外的非中心点对象。具体地,替换代价的计算过程如上述流程 中步骤304以及步骤305所述,此处不再详细描述。实施例三、完全并行方式该实施例中,即将各个计算过程均采用并行方式执行,以获得更高的计算效率,具 体地,并行计算各待替换对象Oh分别替换各中心点对象对应的替换代价,其中,针对每一 个待替换对象0h,并行计算该待替换对象Oh分别替换各中心点对象对应的替换代价(即通 过一次并行计算过程获得待替换对象Oh分别替换K各中心点对象对应的K个替换代价), 并且,针对替换对象Oh替换中心点对象Oi对应的替换代价的过程也并行化,如上述步骤 403至步骤404所述,此处不再重复描述。以上针对本发明实施例中各计算节点的执行过程进行了详细说明,当各计算节点 通过计算确定其本地保存的各数据对象中的非中心点对象作为待替换对象Oh替换预先选 定的K个中心点对象分别对应的替换代价后,控制节点需要获取并合并所有计算节点的执 行结果,根据执行过程对当前聚类结果(即确定的中心点对象对应的簇以及被分配至该簇 中的数据对象)进行调整,即对应上述流程中的步骤204以及步骤205。其中,本发明优选 实施例中,步骤205也可以采用并行化处理过程,具体如图5所示,包括如下步骤步骤501、根据获取的执行结果中各替换代价对应的中心点对象,分别将对应同一 中心点对象的替换代价归为一类;步骤502、针对每一类替换代价,确定具有小于零且最小替换代价的非中心点对 象,并利用确定的非中心点对象替换当前类对应的中心点对象。本发明实施例中,控制节点在将分块数据对象分配并分发给至少两个计算节点 后,需要指定K个中心点对象以及各中心点对象对应的簇内的数据对象(即非中心点对 象),通过本发明实施例提供的上述方法对中心点对象以及对应的簇内的数据对象进行调 整至最佳,本发明优选实施例中,形成初始化簇的过程可以通过如图6所示的过程步骤601、从待处理数据中选择设定个数据对象作为中心点对象;步骤602、以串行方式或并行方式控制所述各计算节点计算保存的各数据对象到 所述设定个中心点对象的距离;步骤603、将各数据对象归类至与其具有最小距离的中心点对象所表示的簇中。其中,根据本发明优选实施例,将各数据对象归类至与其具有最小距离的中心点 对象所表示的簇中,无需进行数据对象的传输,而通过如下方式对各数据对象添加用于表示与其具有最小距离的中心点对象所表示的簇的标识。相应地,与上述方法流程对应,本发明实施例还提供了一种数据挖掘系统中数据 聚类的系统,如图7所示,该系统包括控制节点701以及至少两个计算节点702 ;其中,控制节点701,用于对数据对象进行分块,将分块数据对象分配并分发给至少两个 计算节点702,并以串行方式或并行方式控制每个计算节点702执行计算利用保存的数据 对象中的非中心点对象分别替换确定的设定个中心点对象后对应的替换代价;以及,获取 每个计算节点702的执行结果,并判断获取的执行结果中是否存在小于零的替换代价;若 是,确定替换同一中心点对象的多个非中心点对象中具有小于零且最小替换代价的非中心点对象,利用所述非中心点对象替换所述中心点对象,并继续以串行方式或并行方式控制 每个计算节点702执行计算利用保存的数据对象中的非中心点对象分别替换确定的设定 个中心点对象后对应的替换代价,直到每个计算节点702的执行结果中不存在小于零的替 换代价;若否,则将当前各中心点对象及其对应簇中包括的数据对象确定为最终聚类结果 并结束;计算节点702,用于根据控制节点701的控制,计算利用保存的数据对象中的非中 心点对象分别替换确定的设定个中心点对象后对应的替换代价。本发明优选实施例中,控制节点701,还用于在将分块数据对象分配并分发给至少 两个计算节点702后,从待处理数据中选择设定个数据对象作为中心点对象,并以串行方 式或并行方式控制各计算节点702执行计算保存的各数据对象到所述设定个中心点对象 的距离;将各数据对象归类至与其具有最小距离的中心点对象所表示的簇中;相应地,上述计算节点702,还用于根据控制节点701的控制,计算保存的各数据 对象到所述设定个中心点对象的距离,并将各数据对象归类至与其具有最小距离的中心点 对象所表示的簇中。相应地,与上述方法流程对应,本发明实施例还提供了一种控制节点,如图8所 示,该控制节点包括分配单元801,用于对数据对象进行分块,将分块数据对象分配并分发给至少两个 计算节点;控制单元802,用于以串行方式或并行方式控制每个计算节点执行计算利用保 存的数据对象中的非中心点对象分别替换确定的设定个中心点对象后对应的替换代价;汇总单元803,用于获取每个计算节点的执行结果;判断单元804,用于判断汇总单元803获取的执行结果中是否存在小于零的替换 代价;若是,确定替换同一中心点对象的多个非中心点对象中具有小于零且最小替换代 价的非中心点对象,利用所述非中心点对象替换所述中心点对象,并触发控制单元802动 作;若否,则将当前各中心点对象及其对应簇中包括的数据对象确定为最终聚类结果 并结束。本发明优选实施例中,上述判断单元804,具体用于在判断汇总单元803获取的执行结果中存在小于零的替换代价时,根据获取的执 行结果中各替换代价对应的中心点对象,分别将对应同一中心点对象的替换代价归为一 类,并针对每一类替换代价以串行方式或并行方式执行利用当前类替换代价中具有小于零且最小替换代价的非中心点对象替换当前类 对应的中心点对象。本发明优选实施例中,上述控制单元802,还用于从待处理数据中选择设定个数据对象作为中心点对象,并以串行方式或并行方式 控制所述各计算节点执行计算保存的各数据对象到所述设定个中心点对象的距离;将所述各数据对象归类至与其具有最小距离的中心点对象所表示的簇中。
本发明优选实施例中,上述控制单元802,具体用于控制各计算节点在计算保存的各数据对象到所述设定个中心点对象的距离后,对 各数据对象添加用于表示与其具有最小距离的中心点对象所表示的簇的标识。应当理解,以上控制节点装置包括的单元仅为根据该装置实现的功能进行的逻辑 划分,实际应用中,可以进行上述单元的叠加或拆分。并且该实施例提供的控制节点所实现 的功能与上述实施例提供的数据挖掘系统中数据聚类的方法流程一一对应,对于该装置所 实现的更为详细的处理流程,在上述方法实施例中已做详细描述,此处不再详细描述。相应地,与上述方法流程对应,本发明实施例还提供了一种计算节点,如图9所 示,该计算节点包括数据存储单元901,用于存储控制节点分配并分发的数据对象;计算单元902,用于根据控制节点的控制,计算利用数据存储单元901存储的数据 对象中的非中心点对象分别替换确定的设定个中心点对象后对应的替换代价。本发明优选实施例中,上述计算单元902,具体用于针对所述保存的数据对象中每个第一非中心点对象,以串行方式或并行方式执 行Bi、选择一个未被选择过的第一中心点对象,以串行方式或并行方式执行步骤Bll 至步骤B14 B11、从保存的数据对象中除所述第一非中心点对象以外的非中心点对象中选择 一个未被选择过的第二非中心点对象;B12、计算选择的所述第二非中心点对象分别与所述第一非中心点对象以及确定 的设定个中心点对象中除所述第一中心点对象以外的中心点对象的距离;B13、计算所述距离中的最小距离减去所述第二非中心点对象与其当前归属的簇 对应中心点对象的距离得到的差值;B14、判断保存的数据对象中除所述第一非中心点对象以外的非中心点对象是否 均被选择过;若否,返回步骤Bll;若是,将通过所述步骤B13计算得到的差值相加得到所述第一非中心点对象替换 所述第一中心点对象的替换代价,并执行步骤B2 ;B2、判断保存的数据对象中所有中心点对象是否均被选择过;若否,返回步骤Bi;若是,结束。应当理解,以上计算节点装置包括的单元仅为根据该装置实现的功能进行的逻辑 划分,实际应用中,可以进行上述单元的叠加或拆分。并且该实施例提供的计算节点所实现 的功能与上述实施例提供的数据挖掘系统中数据聚类的方法流程一一对应,对于该装置所 实现的更为详细的处理流程,在上述方法实施例中已做详细描述,此处不再详细描述。通过本发明实施例提供的上述至少一个技术方案,由控制节点将待挖掘的数据对 象分块,将分块数据分配并分发至至少两个计算节点中,并采用并行或串行方式控制每个 计算机计算利用保存的数据对象中的非中心点对象分别替换确定的设定个中心点对象后 对应的替换代价,并获取每个计算节点的执行结果,判断获取的执行结果中是否存在小于零的替换代价,若是,则确定替换同一中心点对象的多个非中心点对象中具有小于零且最 小替换代价的非中心点对象,利用所述非中心点对象替换所述中心点对象,并返回控制每 个计算机计算利用保存的数据对象中的非中心点对象分别替换确定的设定个中心点对象 后对应的替换代价的步骤,直到各计算节点计算得到的替换代价均大于等于零;若否,则将 当前各中心点对象及其对应簇中包括的数据对象确定为最终聚类结果并结束。根据本发明 提供的技术方案,控制节点能够控制将待处理数据分布至多个计算节点,从而提高了数据 的处理量,能够处理海量数据的挖掘需求。并且,根据本发明提供的技术方案,可以将数据 分布至多个计算节点处理,从而对于单个计算节点而言,降低了数据处理负担,相应地提高 了计算效率,尤其在计算节点内部采用并行处理方式的情况下,更进一步提高了数据处理 效率。本发明实施例中,对k个中心点对象的替换代价计算也并行实现,在并行计算待 测试对象到k-1个中心点对象和待替换数据距离时,一次计算到k个中心点对象距离,并可 以多次使用,不仅减少了操作步骤,而且避免了重复计算,提高系统性能。本发明实施例提供的技术方案适用于PAM以及CLARANS算法。CLARA先抽取数据 集合的多个样本,然后用PAM方法在抽样的样本中寻找最佳的k中心点对象,返回最好的聚 类结果作为输出。CLARANS随机搜索聚类算法与CLARA类似采用抽样方法,但CLARANS在搜 索的每一步都带一定随机性地选取一个样本。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种数据挖掘系统中数据聚类的方法,其特征在于,包括A、主控节点对数据对象进行分块,将分块后的数据对象分发给至少两个计算节点;B、以串行方式或并行方式控制所述每个计算节点执行计算利用保存的数据对象中的非中心点对象分别替换确定的设定个中心点对象后对 应的替换代价;C、所述主控节点获取所述每个计算节点的执行结果,并判断获取的执行结果中是否存 在小于零的替换代价;若是,确定替换同一中心点对象的多个非中心点对象中具有小于零且最小替换代价的 非中心点对象,利用确定的所述非中心点对象替换所述中心点对象,并返回步骤B ;若否,则将当前各中心点对象及其对应簇中包括的数据对象确定为最终聚类结果并结束ο
2.如权利要求1所述的方法,其特征在于,上述步骤B中,计算利用保存的数据对象中 的非中心点对象分别替换确定的设定个中心点对象后对应的替换代价,包括针对所述保存的数据对象中每个第一非中心点对象,以串行方式或并行方式执行 Bi、选择一个未被选择过的第一中心点对象,以串行方式或并行方式执行步骤Bll至 步骤B14 B11、从保存的数据对象中除所述第一非中心点对象以外的非中心点对象中选择一个 未被选择过的第二非中心点对象;B12、计算选择的所述第二非中心点对象分别与所述第一非中心点对象以及确定的设 定个中心点对象中除所述第一中心点对象以外的中心点对象的距离;B13、计算所述距离中的最小距离减去所述第二非中心点对象与其当前归属的簇对应 中心点对象的距离得到的差值;B14、判断保存的数据对象中除所述第一非中心点对象以外的非中心点对象是否均被 选择过;若否,返回步骤Bll ;若是,将通过所述步骤B13计算得到的差值相加得到所述第一非中心点对象替换所述 第一中心点对象的替换代价,并执行步骤B2 ;B2、判断保存的数据对象中所有中心点对象是否均被选择过; 若否,返回步骤Bl ;右是 结束ο
3.如权利要求1所述的方法,其特征在于,所述步骤C中,确定替换同一中心点对象的 多个非中心点对象中具有小于零且最小替换代价的非中心点对象,利用所述非中心点对象 替换所述中心点对象,包括根据获取的执行结果中各替换代价对应的中心点对象,分别将对应同一中心点对象的 替换代价归为一类,并针对所述每一类替换代价以串行方式或并行方式执行利用当前类替换代价中具有小于零且最小替换代价的非中心点对象替换当前类对应 的中心点对象。
4.如权利要求1所述的方法,其特征在于,在执行完所述步骤A后,还包括从所述待处理数据中选择设定个数据对象作为中心点对象,并以串行方式或并行方式控制所述各计算节点执行计算保存的各数据对象到所述设定个中心点对象的距离;将所述各数据对象归类至与其具有最小距离的中心点对象所表示的簇中。
5.如权利要求4所述的方法,其特征在于,将所述各数据对象归类至与其具有最小距 离的中心点对象所表示的簇中,包括对所述各数据对象添加用于表示与其具有最小距离的中心点对象所表示的簇的标识。
6.一种数据挖掘系统中数据聚类的系统,其特征在于,包括控制节点以及至少两个计 算节点;其中,所述控制节点,用于对数据对象进行分块,将分块后的数据对象分发给所述至少两个 计算节点,并以串行方式或并行方式控制所述每个计算节点执行计算利用保存的数据对 象中的非中心点对象分别替换确定的设定个中心点对象后对应的替换代价;以及,获取所 述每个计算节点的执行结果,并判断获取的执行结果中是否存在小于零的替换代价;若是, 确定替换同一中心点对象的多个非中心点对象中具有小于零且最小替换代价的非中心点 对象,利用所述非中心点对象替换所述中心点对象,并继续以串行方式或并行方式控制所 述每个计算节点执行计算利用保存的数据对象中的非中心点对象分别替换确定的设定个 中心点对象后对应的替换代价,直到所述每个计算节点的执行结果中不存在小于零的替换 代价;若否,则将当前各中心点对象及其对应簇中包括的数据对象确定为最终聚类结果并 结束;所述计算节点,用于根据所述控制节点的控制,计算利用保存的数据对象中的非中心 点对象分别替换确定的设定个中心点对象后对应的替换代价。
7.如权利要求6所述的系统,其特征在于,所述控制节点,还用于在将分块数据对象分发给所述至少两个计算节点后,从所述待 处理数据中选择设定个数据对象作为中心点对象,并以串行方式或并行方式控制所述各计 算节点执行计算保存的各数据对象到所述设定个中心点对象的距离;将所述各数据对象 归类至与其具有最小距离的中心点对象所表示的簇中;所述计算节点,还用于根据所述控制节点的控制,计算保存的各数据对象到所述设定 个中心点对象的距离,并将所述各数据对象归类至与其具有最小距离的中心点对象所表示 的簇中。
8.—种控制节点,其特征在于,包括分配单元,用于对数据对象进行分块,将分块后的数据对象分发给至少两个计算节点。控制单元,用于以串行方式或并行方式控制所述每个计算节点执行 计算利用保存的数据对象中的非中心点对象分别替换确定的设定个中心点对象后对 应的替换代价;汇总单元,用于获取所述每个计算节点的执行结果;判断单元,用于判断所述汇总单元获取的执行结果中是否存在小于零的替换代价; 若是,确定替换同一中心点对象的多个非中心点对象中具有小于零且最小替换代价的 非中心点对象,利用所述非中心点对象替换所述中心点对象,并触发所述控制单元动作; 若否,则将当前各中心点对象及其对应簇中包括的数据对象确定为最终聚类结果并结束。
9.如权利要求8所述的控制节点,其特征在于,所述判断单元,具体用于在判断所述汇总单元获取的执行结果中存在小于零的替换代价时,根据获取的执行结 果中各替换代价对应的中心点对象,分别将对应同一中心点对象的替换代价归为一类,并 针对所述每一类替换代价以串行方式或并行方式执行利用当前类替换代价中具有小于零且最小替换代价的非中心点对象替换当前类对应 的中心点对象。
10.如权利要求8所述的控制节点,其特征在于,所述控制单元,还用于从所述待处理数据中选择设定个数据对象作为中心点对象,并以串行方式或并行方式 控制所述各计算节点执行计算保存的各数据对象到所述设定个中心点对象的距离;将所述各数据对象归类至与其具有最小距离的中心点对象所表示的簇中。
11.如权利要求10所述的控制节点,其特征在于,所述控制单元,具体用于控制所述各计算节点在计算保存的各数据对象到所述设定个中心点对象的距离后,对 所述各数据对象添加用于表示与其具有最小距离的中心点对象所表示的簇的标识。
12.—种计算节点,其特征在于,包括数据存储单元,用于存储控制节点分发的数据对象;计算单元,用于根据所述控制节点的控制,计算利用所述数据存储单元存储的数据对 象中的非中心点对象分别替换确定的设定个中心点对象后对应的替换代价。
13.如权利要求12所述的计算节点,其特征在于,所述计算单元,具体用于 针对所述保存的数据对象中每个第一非中心点对象,以串行方式或并行方式执行 Bi、选择一个未被选择过的第一中心点对象,以串行方式或并行方式执行步骤Bll至步骤B14 B11、从保存的数据对象中除所述第一非中心点对象以外的非中心点对象中选择一个 未被选择过的第二非中心点对象;B12、计算选择的所述第二非中心点对象分别与所述第一非中心点对象以及确定的设 定个中心点对象中除所述第一中心点对象以外的中心点对象的距离;B13、计算所述距离中的最小距离减去所述第二非中心点对象与其当前归属的簇对应 中心点对象的距离得到的差值;B14、判断保存的数据对象中除所述第一非中心点对象以外的非中心点对象是否均被 选择过;若否,返回步骤Bll ;若是,将通过所述步骤B13计算得到的差值相加得到所述第一非中心点对象替换所述 第一中心点对象的替换代价,并执行步骤B2 ;B2、判断保存的数据对象中所有中心点对象是否均被选择过; 若否,返回步骤Bl ;若是,结束。
全文摘要
本发明公开了一种数据挖掘系统中数据聚类的方法、系统及装置,主要包括A、主控节点将分块数据对象分发给至少两个计算节点;B、以串行方式或并行方式控制每个计算节点计算利用保存的数据对象中的非中心点对象分别替换设定个中心点对象后对应的替换代价;C、获取每个计算节点的执行结果,并是否存在小于零的替换代价;若是,确定替换同一中心点对象的多个非中心点对象中最小替换代价的非中心点对象,替换中心点对象,并返回步骤B;若否,则将当前各中心点对象及对应簇确定为最终聚类结果。根据该技术方案,提高了计算效率,并且应用于海量数据的处理需求。
文档编号G06F17/30GK102141988SQ20101010297
公开日2011年8月3日 申请日期2010年1月28日 优先权日2010年1月28日
发明者何清, 何鸿凌, 周文辉, 孙少陵, 徐萌, 罗治国, 赵卫中, 邓超, 陶涛, 马慧芳, 高丹 申请人:中国移动通信集团公司