本发明专利技术公开了一种基于冗余距离消除和极端点优化的并行k‑means聚类方法,使用正弦定理和余弦定理,找出每个聚类中的冗余距离并消除每个聚类中的冗余距离;对极端点与其相应的中心点之间距离采用曼哈顿距离进行计算;在迭代过程中,采用平均值的计算方式选取K‑means聚类方法中的中心点。本发明专利技术找出每个聚类中的冗余距离,然后避免聚类中的点与不相关的中心点做距离计算,让K‑means方法在目前的情况下更大程度的消除冗余距离计算;进行优化极端点的处理,对极端点采用曼哈顿距离代替欧氏距离来计算极端点与中心点之间的距离;最后,中心点的选取方式,采用平均值的计算方式代替随机选取的方式,使得聚类中的点分布的更均匀,聚类结果更精确。
【技术实现步骤摘要】
本专利技术属于计算机领域,尤其涉及一种基于冗余距离消除和极端点优化的并行k-means聚类方法。
技术介绍
名词解释:K-means聚类方法指通过不断地取离种子点(中心点)最近均值的进行聚类的算法。随着互联网技术的高速发展,当前云计算技术已经成为一种商业模式,它已经渗透到各个领域。在医学领域,我们使用k-means聚类方法和云计算技术相结合,从海量医疗数据中挖掘出疾病与药品的信息。K-means聚类方法是当前使用最多、效率最高的聚类方法之一。MapReduce最初是由Google公司开发的,它是一种并行计算框架,非常适合海量数据集的并行计算。MapReduce内部的工作原理比较复杂,但是编码非常简单,它提供了一种简易的接口,可以让普通的开发人员根据自己的需求编写自己的MapReduce程序。普通开发人员像编写串行程序一样只需要实现启动任务的入口函数(通常是main函数)、map函数和reduce函数,更复杂一点的可以实现setUp函数和cleanUp函数即可。这样MapReduce并行计算框架根据数据集的大小启动相应的Map或Reduce任务同时并行的执行开发人员编写的MapReduce程序。开发人员无须关心MapReduce内部复杂的工作原理,如数据集的分块、数据块的分配和排序以及多个Map或Reduce任务之间的通信。Hadoop是由apache基金会开发的一个包含分布式计算和存储的开源项目,它实现<br>了谷歌的MapReduce并行计算模型。当前的Hadoop的版本已经更新到2.6,它主要由以下几个部分组成:client(客户端)、ResourceManager(资源管理器)、NodeManager(节点管理器)、ApplicationMaster(作业管理器)、任务。(1)client(客户端)在Hadoop内部,用“作业”表示一个分布式应用程序,每个作业被切分成多个split(分块),Client负责将用户编写的作业提交到ResourceManager端。此外,Client提供一些接口可以查看作业的运行状态。(2)ResourceManager(资源管理器)ResourceManager是基于应用程序对资源的需求进行调度的,主要是用于管理向应用程序分配计算资源。在Hadoop2.0以上的版本中才会有,它接收client端提交过来的作业,并为每个作业分配相应的资源,这些资源包括:CPU、内存、磁盘、网络等。(3)NodeManager(节点管理器)NodeManager是每一台机器框架的代理,主要是执行ResourceManager分配的任务,监控应用程序的资源使用情况,并且向ResourceManager汇报。(4)ApplicationMaster(作业管理器)每个应用都有一个ApplicationMaster,ApplicationMaster的主要职责是向ResourceManager索要适当的资源容器,运行任务,跟踪应用程序的状态和监控它们的进程,处理任务的失败原因。(5)任务任务分为Map(映射)任务和Reduce(规约)任务两种,均由NodeManager启动。在Hadoop内部,数据处理的最小单位是split(分块),每个split会交由一个Map任务处理,Map任务和Map任务之间是并行执行的。Map任务先将对应的split迭代解析成一个个(key,value)键值对,并依次调用用户自定义的map函数将其映射成一组新的(key,value)键值对,最终将中间数据即新的(key,value)键值对存放到本地磁盘上,其中中间数据被分成若干个partition(分区),每个partition(分区)将被一个Reduce任务处理。Reduce任务用来把所有Map任务产生的partition按照key值,对对应的value值进行处理,产生多个共享相同key值的键组,最终完成整个作业。这种将一个大作业切分成多个小任务,然后并行执行每个小任务,从而达到计算并行化的效果,是目前云计算领域比较通用的一种方式。一些国内外顶尖的研究学者都在各个业务领域使用Hadoop做大数据处理的工作,尤其最近在医学领域使用得非常频繁。他们在MapReduce上实现各种聚类方法,比如说K-means,并获得了一定的成果,但是仍然存在有一些问题。MapReduce虽然是并行计算框架,但是随着数据量的增加,最终的聚类效率也是不尽满意。K-means聚类方法是当前使用最频繁、效率最高的方法之一,但是这个方法还是存在冗余距离计算的问题,数据量越大,冗余距离计算就会跟着相应的增加,而且也没有对极端值进行处理。因此K-means方法还是存在很大的性能瓶颈。在面对上面的这些问题时,国内外的许多专家都提出自己的想法,并取得一定的效果,例如:由于当前K-means聚类方法处理的数据集越来越大,相应的处理速度却越来越慢。为了能够让K-means聚类方法的效率得到提高,伊利诺伊大学的AlinaEne等学者提出一种样本技术,这种技术是尽最大的可能选取跟整体数据集接近的样本数据,把样本数据代替整个数据集,这样数据集减小了,聚类效率也提升了。但是这种做法存在很多问题。首先,样本数据是否完全反映整体数据的特性;其次,数据集越大样本数据也会增加,最终对样本数据聚类也会涉及效率的问题。因此这种方式并不算是真正的解决K-means方法的性能瓶颈。为了是K-means方法变得更高效和可靠,大连海事大学的XuYujie等人提出一种消除冗余距离计算的方式减少K-means方法每次迭代的计算量,从而达到减少K-means方法的整体计算量的目的。这样K-means方法的每次迭代时间减少了,整体的迭代时间也跟着减少了。然而这个种方式虽然能够消除一定的冗余距离计算,但是仍然还是存在一部分的冗余距离计算,而且整个聚类过程中存在许多极端点。所谓的极端点就是在每个聚类中离聚类中心点较远,而且不管经过多少次迭代还是属于当前的聚类。这些极端点对K-means聚类效率也有一定的影响,因此如何优化极端点也是一个提升方法效率的一个手段。对于K-means方法的另一个问题----最终的聚类结果对中心点敏感。选取中心点的方式不同,对最终的聚类结果有很大的影响。因此中心点的选择问题也是很多国内外学者研究的一个重点方向。LiaoQing等研究学者提出一种改进的K-means方法,通过建立一个中心点选择模型,使得每次选择的中心点都是当前情况下是最好的。但是从整体来看这种选择方式并不是最好。因为这种本文档来自技高网...
【技术保护点】
一种基于冗余距离消除和极端点优化的并行k‑means聚类方法,其特征在于,使用正弦定理和余弦定理,找出每个聚类中的冗余距离并消除每个聚类中的冗余距离;对极端点与极端点所在聚类的中心点之间距离采用曼哈顿距离进行计算;在迭代过程中,采用平均值的计算方式选取K‑means聚类方法中的中心点。
【技术特征摘要】
1.一种基于冗余距离消除和极端点优化的并行k-means聚类方法,其特征在于,使用正
弦定理和余弦定理,找出每个聚类中的冗余距离并消除每个聚类中的冗余距离;对极端点
与极端点所在聚类的中心点之间距离采用曼哈顿距离进行计算;在迭代过程中,采用平均
值的计算方式选取K-means聚类方法中的中心点。
2.如权利要求1所述的基于冗余距离消除和极端点优化的并行k-means聚类方法,其特
征在于,包括如下步骤:
步骤一、在多台物理服务器上构建完全分布式系统,将医疗数据及中心点数据导入完
全分布式系统;
步骤二、用户向完全分布式系统提交作业,完全分布式系统将整个作业分解成多个分
块;
步骤三、完全分布式系统启动映射任务辨别分块的数据,将分块的数据按中心点进行
聚类,将离中心点距离最近的点聚为一类;中心点集合形成当前的中心点集;
步骤四、消除每个聚类中的冗余距离计算:使用正弦定理和余弦定理,找出每个聚类中
的冗余距离,消除每个聚类中的冗余距离;采用曼哈顿距离计算聚类中的极端点与其相应
中心点的距离;
步骤五、对于k个聚类分别分配1~k个编号;对于每个聚类中的任意一点生成键值对,
所述键值对包括键名和值;键名为聚类的中心点所在的聚类编号,值为此点所有的列值;按
照键名进行分割,产生分区;
步骤六、每个分区由一个规约任务进行处理,依次统计规约任务接收到每一个键名对
应的值;这个值通常包含一个或多个列,然后求出对应列的平均值,这个平均值作为新的聚
类中心点,新的中心点集合形成新的中心点集;
步骤七、对比新的中心点集与当前的中心点集,如果新的中心点集与当前的中心点集
相同,则将规约任务产生的键值对作为最终的聚类结...
【专利技术属性】
技术研发人员:李肯立,肖锦波,唐卓,刘锡洋,鲁彬,陈俊杰,
申请(专利权)人:湖南大学,
类型:发明
国别省市:湖南;43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。