首页 基于云计算平台Hadoop的并行k_means聚类算法设计研究

基于云计算平台Hadoop的并行k_means聚类算法设计研究

举报
开通vip

基于云计算平台Hadoop的并行k_means聚类算法设计研究 第38卷 第10期 2011年10月 计 算 机 科 学 Computer Science Vol.38No.10 Oct 2011 到稿日期:2010-11-01 返修日期:2011-03-21  本文受国家自然科学基金(60933004,60975039,61072085),国家973项目(2007CB311004), 西北师范大学青年教师科研能力提升计划骨干项目(NWNU-LKQN-10-1),湘潭大学博士启动基金(10QDZ42),湖南省教育厅一般项目 (09C967)资助。 赵卫中(1981...

基于云计算平台Hadoop的并行k_means聚类算法设计研究
第38卷 第10期 2011年10月 计 算 机 科 学 Computer Science Vol.38No.10 Oct 2011 到稿日期:2010-11-01 返修日期:2011-03-21  本文受国家自然科学基金(60933004,60975039,61072085),国家973项目(2007CB311004), 西北师范大学青年教师科研能力提升 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 骨干项目(NWNU-LKQN-10-1),湘潭大学博士启动基金(10QDZ42),湖南省教育厅一般项目 (09C967)资助。 赵卫中(1981-),男,博士,讲师,主要研究领域为机器学习、数据挖掘、算法分析与 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 ,E-mail:zhaoweizhong@gmail.com;马慧芳(1981-), 女,博士,副教授,主要研究领域为机器学习、数据挖掘;傅燕翔(1979-),女,讲师,主要研究领域为人机界面交互;史忠植(1941-),男,研究员, 博士生导师,主要研究领域为人工智能、机器学习、神经计算、认知科学。 基于云计算平台Hadoop的并行k-means 聚类算法设计研究 赵卫中1,4 马慧芳2,4 傅燕翔3 史忠植4 (湘潭大学信息工程学院 湘潭411105)1 (西北师范大学数学与信息科学学院 兰州730070)2 (湘潭大学机械工程学院 湘潭411105)3 (中国科学院计算技术研究所智能信息处理重点实验室 北京100190)4   摘 要 随着数据库技术的发展和Internet的迅速普及,实际应用中需要处理的数据量急剧地增长,致聚类研究面临 许多新的问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 和挑战,如海量数据和新的计算环境等。深入研究了基于云计算平台 Hadoop的并行k-means聚类算 法,给出了算法设计的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 和策略。在多个不同大小数据集上的实验表明,设计的并行聚类算法具有优良的加速比、 扩展率和数据伸缩率等性能,适合用于海量数据的分析和挖掘。 关键词 云计算,Hadoop平台,并行k-means,MapReduce   Research on Parallel k-means Algorithm Design Based on Hadoop Platform ZHAO Wei-zhong1,4 MA Hui-fang2,4 FU Yan-xiang3 SHI Zhong-zhi 4 (College of Information Engineering,Xiangtan University,Xiangtan 411105,China)1 (College of Mathematics and Information,Northwest Normal University,Lanzhou 730070,China)2 (College of Mechanical Engineering,Xiangtan University,Xiangtan 411105,China)3 (Key Laboratory of Intelligent Information Processing,Institute of Computing Technology,Chinese Academy of Sciences,Beijing 100190,China)4   Abstract In the past decades,data clustering has been studied extensively and a mass of methods and theories have been achieved.However,with the development of database and popularity of Internet,a lot of new challenges such as massive data and new computing environment lie in the research on data clustering.We conducted a deep research on parallel k-means algorithm based on Hadoop,which is a new cloud computing platform.We showed how to design paral- lel k-means algorithms on Hadoop.Experiments on different size of datasets demonstrate that our proposed algorithm shows good performance on speedup,scaleup and sizeup.Thus it fits to data clustering on huge datasets. Keywords Cloud computing,Hadoop,Parallel k-means,MapReduce   1 引言 聚类是数据挖掘中重要的研究课题之一。所谓聚类,就 是将物理或抽象对象的集合组成为由类似的对象组成的多个 类或簇的过程。由聚类生成的簇是一组数据对象的集合,同 一簇中的对象尽可能相似,而不同簇中的对象尽可能相异[1]。 随着数据库技术的成熟和数据应用的普及,商业、企业、科研 机构或者政府部门都积累了大量的、以不同形式存储的数据。 如何存储、处理这些海量数据,以及进一步从中挖掘出有用 的、可以指导应用的知识,成为一个棘手的问题。在面对海量 数据时,现有的聚类算法在时间复杂性和空间复杂性上遇到 了瓶颈,这也是聚类算法研究领域中亟需解决的问题之一。 解决该问题的一个思路就是将并行处理技术应用到聚类中, 设计出高效的并行聚类算法,来提高聚类算法处理海量数据 时的性能。 云计算作为一种新兴的商业计算模型得到了人们的广泛 关注[2-5]。Hadoop是一个可以更容易开发和并行处理大规模 数据的云计算平台,它的主要特点包括扩容能力强、成本低、 效率高以及可靠性好等。Hadoop平台由两部分组成:Ha- doop分布式文件系统(HDFS)[6]和 MapReduce计算模型[7]。 HDFS采用 M/S架构,一个 HDFS集群是由一个管理节 点(Namenode)和一定数目的数据节点(Datanode)组成,每个 节点均是一台普通PC。在使用上,HDFS与单机上的文件系 统非常类似,同样可以建目录,创建、复制、删除文件,查看文 件内容等。但其底层实现上是把文件切割成块,然后这些块 分散地存储于不同的数据节点上。每个块还可以复制若干 ·661· 份,存储于不同的数据节点上,以达到容错之目的。管理节点 是一 个 中 心 服 务 器,负 责 管 理 文 件 系 统 的 名 字 空 间 (Namespace)以及客户端对文件的访问。集群中的数据节点 负责管理它所在节点上的存储。管理节点是整个 HDFS的 核心,它通过维护一组数据结构,记录每一个文件被切割成了 多少块、这些块可以从哪些数据节点中获得、各个数据节点的 状态等重要信息。 MapReduce是一种高效的分布式编程模型,也是一种用 于处理和生成大规模数据集的实现方式。MapReduce计算 模型各个阶段的工作流程如下: 1)Input:一个基于 Hadoop平台 MapReduce框架的应用 通常需要一对通过实现合适的接口或抽象类提供的 Map和 Reduce函数,还应该指明输入、输出的位置和其他一些运行 参数。此阶段还会把输入目录下的大数据文件划分为若干独 立的数据块。 2)Map:MapReduce框架把应用的输入看作一组〈key, value〉键值对。在 Map这个阶段,框架会调用用户自定义的 Map函数,处理每个〈key,value〉键值对。同时生成一批新的 中间〈key,value〉键值对。这两组键值对的类型可能不同。 3)Shuffle:为了保证Reduce的输入是 Map排好序的输 出,在Shuffle阶段,框架通过 HTTP为每个 Reduce获得所 有 Map输出中与之相关的〈key,value〉键值对;MapReduce 框架按照key值对 Reduce阶段的输入进行分组(因为不同 Map的输出中可能会有相同的key)。 4)Reduce:此阶段会遍历中间数据,对每一个唯一的 key,执行用户自定义的Reduce函数。输入参数是〈key,{list of values}〉,输出是新的〈key,value〉键值对。 5)Output:此阶段会把Reduce输出的结果写入到输出目 录指定的位置。这样,一个典型的 MapReduce过程就完成 了。 2 基于Hadoop的并行k-means聚类算法设计 由上一部分的介绍可以看出,基于 Hadoop的并行算法 设计,用户最主要的工作是设计和实现 Map和Reduce函数, 包括输入和输出〈key,value〉键值对的类型以及 Map和Re- duce函数的具体逻辑等。 串行的k-means算法的步骤为: 1)任意选择k个样本作为聚簇初始的中心点; 2)迭代; a)根据每个聚簇的中心点坐标,将每个样本分配给距离 其最近的聚簇; b)更新聚簇的中心点坐标,即计算每个聚簇中所有样本 的均值; 3)直到收敛。 从k-means算法中可以看出,算法中主要的计算工作是 将每个样本分配给距离其最近的聚簇,并且分配不同样本的 操作之间是相互独立的,因此考虑将这一步骤并行地执行。 在每次迭代中,算法执行相同的操作,并行k-means算法 (Parallel KMeans:PKMeans)在每次迭代中分别执行相同的 Map和Reduce操作就可以完成。 首先随机选择k个样本作为中心点,并将这k个中心点 存储在 HDFS上的一个文件中,作为全局变量。接下来每次 迭代由3部分组成:Map函数、Combine函数和Reduce函数。 2.1 Map函数的设计 Map函数输入的〈key,value〉对是 MapReduce框架默认 的格式,即key是当前样本相对于输入数据文件起始点的偏 移量,value是当前样本的各维坐标值组成的字符串。首先, 从value中解析出当前样本各维的值;然后计算其与k个中 心点的距离,找出距离最近的聚簇的下标;最后输出〈key′, va-lue′〉,其中key′是距离最近的聚簇的下标,value′是当前样 本的各维坐标组成的字符串。函数的伪码为: map(〈key,value〉,〈key′,value′〉) {  从value中解析出样本对象,记作instance; 辅助变量minDis初始化为可能的最大值; index初始化为-1; For i=0to k-1do{   dis=instance与第i个中心点的距离;   if dis小于minDis{     minDis=dis;     index=i;   } } 将index作为key′; 将各维坐标值作为value′; 输出〈key′,value′〉; } 为了减少算法迭代过程中传输的数据量和通讯代价,在 Map操作之后,PKMeans算法中设计一个Combine的操作, 将每个 Map函数处理完后的输出数据进行本地合并。因为 每个 Map操作后输出的数据,总是先存储在本地的节点,所 以每个Combine操作都是在本地执行,通信代价很小。 2.2 Combine函数的设计 Combine函数输入的〈key,V〉对中,key是聚簇的下标,V 是分配给下标为key的聚簇的每个样本的各维坐标值组成的 字符串链表。首先从字符串链表中依次解析出每个样本的各 维坐标值,并将每一维对应的坐标值分别相加,同时记录下链 表中样本的总数。输出的 〈key′,value′〉对中key′是聚簇的 下标;value′是字符串,包括两部分信息:样本总数和各维坐 标值的累加和组成的字符串。函数伪码为: combine(〈key,V〉,〈key′,value′〉) {   初始化一个数组,用于存储各维坐标的累加值,每个分量初始值为 0; 初始化变量num,记录分配给相同聚簇的样本个数,初始值为0; While(V.hasNext()){   从V.next()中解析出一个样本的各维坐标值; 将各维坐标值累加到数组相应的分量中; num++; } 将key作为key′; 构造一个字符串,包含num和数组各个分量的信息,将该字符串作 为value′; 输出〈key′,value′〉; } 2.3 Reduce函数的设计 Reduce函数输入的〈key,V〉中,key是聚簇的下标,V 是 ·761· 从各个Combine函数传输的中间结果。在Reduce函数中首 先解析出从每个Combine中处理的样本个数和相应节点各 维的坐标累加值;然后将对应的各维累加值分别对应相加,再 除以总的样本个数,即得新的中心点坐标。函数伪码为: reduce(〈key,V〉,〈key′,value′〉) {   初始化一个数组,用于存储各维坐标的累加值,每个分量初始值为 0; 初始化变量NUM,记录分配给相同聚簇的总的样本个数,初始值 为0; While(V.hasNext()){   从V.next()中解析出一个样本的各维坐标值和样本个数 num;   将各维坐标值累加到数组相应的分量中;   NUM+=num; } 将数组中的每个分量除以NUM,得到新的中心点坐标; 将key作为key′; 构造一个字符串,包含新的中心点各维坐标值的信息,将该字符串 作为value′; 输出〈key′,value′〉; } 根据Reduce的输出结果,得到新的中心点坐标,并更新 到 HDFS上的文件中,然后进行下一次迭代,直到算法收敛。 3 实验与结果分析 3.1 实验环境、数据集和评价指标 本文中所有的实验都是在我们实验室搭建的 Hadoop平 台上运行的。平台由10台机器、32核(2核×4+4核×6)构 成。其中,有4台机器是双核2.8G,4GB内存;有6台机器是 四核2.33G,8G内存。Hadoop版本是0.17.0,java版本是 1.5.0-14。每台机器之间用千兆以太网卡,通过交换机连接。 实验所用的数据是人工数据,维度是48维。为了测试算 法的性能,实验中构造了1G,2G,4G,8G,16G和32G等6个 不同大小的数据集。 在实验中,采用加速比(speedup)、扩展率(scaleup)和数 据伸缩率(sizeup)[8]作为评价指标。 3.2 实验结果 由于PKMeans算法中有随机初始化中心点的操作,因此 对每一组实验重复执行20次,取其平均执行时间作为最终每 组实验的结果。 在实验中,我们测试了算法PKMeans处理不同大小数据 集时的加速比,实验结果如图1所示。 图1 加速比性能测试结果 从图1中可以看出,PKMeans算法的加速比是接近线性 的。并且,随着数据集规模的增大,算法的加速比性能会越来 越好。原因有两个:1)PKMeans算法的 Map和Reduce中设 计的〈key,value〉对比较合理,使算法能够高效、快捷地实现 和执行;2)在并行算法设计中,增加了Combine的操作,使主 节点和从节点之间的通讯代价大幅度减少,并且数据集规模 越大,通讯量减少的比例越高。因此,当数据集规模越大时, 算法的加速比性能越好。 我们用3组实验测试PKMeans算法的扩展率。第一组 是测试不同大小的数据集1G,2G,4G和8G分别在1节点、2 节点、4节点和8节点上的运行效率;第二组是测试不同大小 的数据集2G,4G,8G和16G分别在1节点、2节点、4节点和 8节点上的运行效率;第三组是测试不同大小的数据集4G, 8G,16G和32G分别在1节点、2节点、4节点和8节点上的 运行效率。实验结果如图2所示。 图2 扩展率性能测试结果 从图2中可以看出,对于同一组数据集,当平台节点个数 和测试数据集大小同比例增长时,PKMeans算法的扩展率是 逐渐减小的。这是因为,当平台节点个数增加时,节点之间的 通讯代价会逐渐增大。当数据规模随节点个数同比例增大 时,算法的执行时间会增加。但是,从结果中我们可以看到, 随着数据集规模的逐渐增大,PKMeans算法的扩展率性能越 来越好。这是因为,当数据规模增大时,更能发挥每个节点全 部的计算能力。并且,在对加速比的分析中指出,PKMeans 中增加了Combine的过程,数据集规模越大,主节点和从节 点之间通讯代价减少的比例就越高。因此,PKMeans算法在 第二组数据集上的性能优于第一组数据集,在第三组数据集 上的性能优于第二组数据集。 图3给出了数据伸缩率的性能测试结果。在实验中,分 别测试了在不同节点个数的平台下算法的数据伸缩率性能。 从结果中可以看出,当平台节点个数少于3时,算法的执行时 间几乎随数据集的规模同比例增长。随着平台中节点个数的 不断增加,算法处理大数据集的效率越来越高。例如,在10 个节点平台下,算法处理32G数据的执行时间才是处理1G 数据时的10倍。实验说明,PKMeans算法适合运行于大规 模的云计算平台,并可以有效地应用于实际中海量数据的分 析和挖掘。 图3 数据伸缩率性能测试结果 结束语 本文对基于云计算平台 Hadoop的并行k- means算法设计进行了深入的研究。首先简要介绍了 Ha- doop平台的基本组成,包括 HDFS框架和 MapReduce各个     (下转第176页) ·861· Values:none)进行处理,当其缺失率分别为10%,20%,30%, 40%,50%,60%,70%,80%,90%时,利用两算法分别对数据 集进行分类,得出如图1所示的实验结果。 图1 算法J48、MultiInfoTree在不同样本缺失率下分类精度比较 2.2 结果分析 比较表1中两种算法分类结果可以看出,分类所得结果 有明显不同,原因在于 MultiInfoTree算法和J48算法对属性 进行分割的 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 不同,它们分别选用联合熵和Shannon熵作 为分割标准。改进后的算法 MultiInfoTree效率提高10~20 倍。其原因是联合熵的计算比Shannon熵要简单得多,避免 了计算对数log消耗的时间,改进算法的执行效率明显优于 C4.5。 从图1的实验结果可以看出,随着数据样本缺失值的增 加,J48算法的分类精度下降明显,而 MultiInfotree算法的分 类精度未有很大变化。这说明J48算法在处理属性值遗漏数 据时会带入偏置,而 MultiInfotree算法在生成决策树的过程 中能够消除值遗漏数据对测试属性选择的影响。当缺失率大 于50%时,改进后的算法的分类精度提高最为明显,这说明 MultiInfoTree算法较适合于缺失率在这个区间的数据集。 结束语 在实际的数据中,属性值遗漏数据是无处不在 的。本文把基于联合熵的信息增益率作为决策树测试属性选 择的标准,它能够在生成决策树的过程中消除值遗漏数据对 测试属性选择的影响,更适合于实际数据。最后,通过实验数 据验证了 MultiInfoTree算法能够从总体上提高算法执行效 率和分类精度,非常适合于样本缺失率大于50%的数据集的 分类问题。当样本缺失率在其他区间时,将通过组合分类 器[10]的技术来提高分类准确率。我们会在以后的工作中不 断扩展和细化这个领域的研究,使之更加完善。本文研究成 果解决了从大规模、不确定性数据集中发现决策树分类模型 的问题,为应用决策树分类技术提供了更为广阔的空间。 参 考 文 献 [1] Gustavo E A,Batista P A,Monard M C.An Analysis of Four Missing Data Treatment Methods for Supervised Learning[J]. Applied Artificial Intelligence,2003,17(5/6):519-533 [2] Kryszkiewicz M.Rules in incomplete information systems[J]. Information Sciences,1999,113:271-292 [3] Mingers J.An empirical comparison of selection measures for decision-tree induction[J].Machine Learning,1989,3(4):319- 342 [4] Safavian S R,Landgrebe D.A Survey of Decision Tree Classifier Methodology[R].47907.School of Electrical Engineering,Pur- due University,1991:1-58 [5] 冯少荣.决策树算法的研究与改进[J].厦门大学学报:自然科学 版,2007,20(4):498-500 [6] Quinlan J R.C4.5:Programs for Machine Learning[S].Morgan Kaufman,1993 [7] Qian Yunhua,Liang Jiye.A new method for measuring the un- certainty in incomplete information systems[J].International Journal of Uncertainty.Fuzziness and Knowledge-Based Sys- tems,2008(9) [8] Leung Y,Li D Y.Maximal consistent block technique for rule acquisition in incomplete information systems[J].Information Science,2003,153:85-106 [9] 赵蕊.基于 WEKA平台的决策树算法设计与实现[D].长沙:中 南大学,2007:43-46 [10]旷海兰,罗可,刘新华,等.一种基于粗糙集理论的组合分类器构 造方法[J].计算机工程与应用,2006,16 (上接第168页) 阶段的工作流程以及结构关系。然后,给出基于 Hadoop的 并行k-means算法设计时需要思考的主要问题、算法设计的 主要流程以及方法和策略等。最后,通过在多组不同大小数 据集上的实验表明,我们设计的并行聚类算法PKMeans适合 运行于大规模云计算平台,可以有效地应用于实际中海量数 据的分析和挖掘。 随着云计算概念的兴起,基于云计算平台的数据挖掘、聚 类算法的研究逐渐成为国内外学者的研究热点。未来的研究 方向包括:1)研究聚类算法并行化的一般规律,找到数据规 模、算法复杂性、节点数之间的关系,发现加速比和可扩展性 的影响因素,从而设计出高效的并行聚类算法;2)研究基于 云计算平台的数据挖掘应用中的信息安全和隐私保护等问 题,该问题的解决对于云计算在实际商务中的应用将起到关 键性的作用。 参 考 文 献 [1] Han J W,Kamber M.Data mining:concepts and techniques [M].San Francisco,US:Morgan Kaufmann,2001 [2] Buyya R,Yeo C S,Venugopal S.Market-oriented cloud compu- ting:vision,hype,and reality for delivering IT services as com- puting utilities,Keynote Paper[C]∥Proceedings of the 10th IEEE International Conference on High Performance Computing and Communications.Dalian,China,2009:25-27 [3] Armbrust M,Fox A.Above the clouds:a Berkeley view of cloud computing[R].USA:University of California at Berkeley,2009 [4] Erdogmus H.Cloud computing:does nirvana hide behind the nebula[J].IEEE Software,2009,26(2):4-6 [5] 郑纬民.云计算的大幕已经拉开[J].中国计算机学会通讯, 2009,2(6):6-7 [6] Ghemawat S,Gobioff H,Leung S.The google file system[J].S ACM SIGOPS Operating Systems Review,2003,37(5):29-43 [7] Dean J,Ghemawat S.MapReduce:simplified data processing on large clusters[C]∥Proceedings of Operating Systems Design and Implementation.San Francisco,CA,2004:137-150 [8] Xu X W,Jager J,Kriegel H P.A fast parallel clustering algo- rithm for large spatial databases[J].Data Mining and Know- ledge Discovery,1999,3(3):263-290 ·671·
本文档为【基于云计算平台Hadoop的并行k_means聚类算法设计研究】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_027075
暂无简介~
格式:pdf
大小:346KB
软件:PDF阅读器
页数:4
分类:
上传时间:2012-02-25
浏览量:25