基于MapReduce的聚类算法的并行化研究
大数据挖掘中的MapReduce并行聚类优化算法研究
大数据挖掘中的MapReduce并行聚类优化算法研究作者:吕国肖瑞雪白振荣孟凡兴来源:《现代电子技术》2019年第11期摘 ;要: ;针对传统数据挖掘算法只适用于小规模数据挖掘处理,由于数据规模不断增大,其存在计算效率低、内存不足等问题,文中将MapReduce用于数据挖掘领域,对大数据挖掘中的MapReduce进行了并行化改进,并设计相应的并行化实现模型,以期满足大数据分析需求,完成低成本、高性能的数据并行挖掘与处理。
关键词:大数据; MapReduce; 并行化处理; 聚类算法; 数据挖掘; Map任务中图分类号: TN911.1⁃34; TP311.14 ; ; ; ; ; ; ; ; 文献标识码: A ; ; ; ; ; ; ; ; ;文章编号:1004⁃373X(2019)11⁃0161⁃04Abstract: The traditional data mining algorithm is only suitable for small⁃scale data mining and processing, and its disadvantages of low computational efficiency and insufficient memory are exposed gradually with the increase of data scale. MapReduce is used in the field of data mining to analyze the MapReduce parallelization improvement of the traditional data mining algorithms; and the corresponding parallelization implementation model is designed to meet the demand of big data analysis, and successfully complete the low⁃cost and high⁃performance data parallel mining and processing.Keywords: big data; MapReduce; parallelization processing; clustering algorithm; data mining; Map task0 ;引 ;言随着大数据时代的来临,互联网的数据量正呈现出爆炸式的增长,采用传统数据分析法对其进行分析和研究,已经无法满足海量数据处理的需求。
基于hadoop平台的聚类算法并行化研究
摘要基于Hadoop平台的聚类算法并行化研究随着信息技术的高速发展,大型商业数据库和互联网都积累了一定规模或者超大规模的数据,这些数据包含着丰富的信息内容。
人们迫切希望从这些庞大的数据中发现对其生活、工作有益的潜在信息,如何快速准确地分析现有数据,最大程度地获取其蕴含的价值,已经成为许多公司和学者共同面对的问题。
聚类算法在所有的数据挖掘方法中占有举足轻重的地位,是将待分类对象从未知过渡到已知的有效措施。
Hadoop是一种开源的能够运行在大量节点之上的分布式系统,MapReduce计算模型是其生态环境中的重要组成部分,与以前的并行计算模式相比,它能够极大地简化分布式并行化程序的开发过程。
本文主要工作以及创新点如下:(1)针对串行化的Kmeans算法处理海量数据集效率低下的问题,本文设计了基于Hadoop的Kmeans并行化算法,并对其实现细节进行优化,从而进一步提升算法处理海量数据的性能。
优化策略主要有:对输入数据进行min-max标准化处理;调整HDFS数据块大小;在Map阶段和Reduce阶段中间添加Combine 过程,通过对Map阶段输出结果进行合并来减少数据节点间的通信。
(2)针对Kmeans并行化算法指定初始聚类中心随机性的问题,本文采用Canopy算法快速聚类得到一组初始聚类中心,同时针对Canopy算法的区域半径盲目取值会造成canopy中心点不准确问题,本文提出了改进的Canopy-Kmeans 并行化算法。
主要改进有:提出区域半径的估值方法来改善canopy中心点的选取,从而减少算法迭代次数;优化Kmeans迭代过程来减少整体计算量,进一步提高迭代速度;删除数据集中的孤立点,得到更准确的初始聚类中心。
(3) 通过搭建Hadoop平台对基于MapReduce的改进Canopy-Kmeans并行化算法进行了一系列的测试来验证其性能。
实验结果表明:改进的Canopy-Kmeans 并行化算法是有效的、收敛的,且可以进一步提升聚类准确率,减少算法迭代次数;该算法具有良好的可扩展性和加速比性能,进一步验证了本文设计的并行化算法适合处理海量数据集。
基于MapReduce的并行子空间聚类算法
第17卷第15期2017年5月 1671 —1815 (2017)015-0104-07科学技术与工程Science Technology and EngineeringV o l. 17 No. 15 M ay. 2017©2017 Sci. Tech. Engrg.基于MapReduce的并行子空间聚类算法董家鸣潘悉张驰(北京大学地球与空间科学学院信息地质研究实验室,北京100871)摘要随着现有数据体量的迅速增长,超大规模中高维数据集的聚类问题变得越来越重要;而现有的子空间聚类算法大多 是单机串行执行,处理此类问题效率极低。
讨论了利用M a p R e d u c e对这类数据集进行并行聚类的方法,提出了基于M apR educe 的抽样 -忽略子空间聚类算法 (sam ple-ignore subspace clu ste rin g using M a pR edu ce,S IS C M R) 。
该算法将串行聚类算法用作插件,具有很好的通用性。
在人造和真实数据集上进行了大量实验,其中最大为0.2T B的数据集在128个核心的集群中仅用 不到10 m in就完成了聚类,验证了该算法良好的聚类质量、近线性的可扩展性和高效的聚类性能,证明了基于M a p R e d u c e的并行聚类的可行性。
关键词子空间聚类并行聚类 M apReduce 高维数据中图法分类号T P311.1; 文献标志码A怎样对一个由中高维度数据点(拥有五个以上 属性)组成的超大数据集进行聚类的问题,现在已 经有大量可以对中高维数据进行聚类的串行子空间 聚类算法[1];但这些算法对于T B以及T B以上级别 的超大数据集是不适用的m,而此类数据集有很多 应用场景:天气监测系统和气候变化模型,以Face-book 为代表的社交网络,天体物理数据库SDSS(Sloan digital sky survey),以及拥有海量数据的其他企业,如能源、矿产和金融企业。
基于mapreduce并行化计算的大数据聚类算法
基于MapReduce的并行K-Means聚类
2.MapReduce框架下的并行K-Means算法
K-Meaቤተ መጻሕፍቲ ባይዱs算法:
首先从n个数据对象任意选择 k 个对象作为初始聚类中心;而对于所 剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它 们分配给与其最相似的(聚类中心所代表的)聚类;然 后再计算每个所获 新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到 标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数。k个聚 类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。
1.假设所有的objects都可以同时存在于主存中; 2.并行系统中提供了受限制的程序模型并且使用这种限制去进行并行的自动 计算。 两个假设都禁止包含数以万计objects的大型数据集。因此,面向大型数据 集的并行聚类算法应该被设计出来。
1.简介
在许多应用领域,数据聚类得到广泛的重视。例如:数据挖掘,文档检 索,图像分割和模式分类。随着科技的进步,信息用量越来越大,使得对大 规模数据的聚类成为了一种严峻的挑战,为了解决这个问题,许多研究者尝 试着设计更高效的平行聚类算法。 在本文中,我们基于提出了一种并行K-Means聚类算法。 MapReduce是一种简单的但是很强大的并行编程模型。用户只要详细定 义map函数和reduce函数,关于并行计算、处理机器故障、跨机器交流的日 志安排等都是潜在的在大规模集群计算机上执行。
可伸缩性
4.总结
本文对基于云计算平台Hadoop的并行K-Means算法,设计进行了深人的研 究。首先,简要介绍了Hadoop 平台的基本组成,包括HDFS框架 MapReduce各个阶段的工作流程以及结构关系。然后,给出基于Hadoop的 并行k-means算法设计时需要思考的主要问题、算法设计的主要流程以及 方法和策略等。最后,通过在多组不同大小数据集上的实验表明,我们 设计的并行聚类算法PKMeans适合运行于大规模云计算平台,可以有效地 应用于实际中海量数据的分析和挖掘。
《2024年遗留代码的MapReduce并行化重构方法研究》范文
《遗留代码的MapReduce并行化重构方法研究》篇一一、引言随着信息技术的飞速发展,大数据处理已经成为各行业不可或缺的一部分。
MapReduce作为一种强大的并行计算框架,被广泛应用于大规模数据处理中。
然而,许多企业和组织面临着遗留代码的挑战,这些代码往往缺乏现代编程范式的优势,如并行化处理能力。
因此,如何将遗留代码与MapReduce框架相结合,实现并行化重构,成为了一个亟待解决的问题。
本文旨在研究遗留代码的MapReduce并行化重构方法,以提高数据处理效率和系统性能。
二、遗留代码的特点与挑战遗留代码通常具有以下特点:代码结构复杂、模块耦合度高、缺乏文档和注释、以及难以理解和维护等。
这些特点使得遗留代码在并行化重构过程中面临诸多挑战,如代码的可读性、可维护性、性能优化等。
此外,遗留代码中可能存在的数据依赖性和资源分配问题也是并行化重构的难点。
三、MapReduce框架及其优势MapReduce是一种基于分布式计算的编程模型,通过将任务分解为多个子任务(Map阶段和Reduce阶段),实现对大规模数据的并行处理。
MapReduce框架具有以下优势:1. 简单易用:通过编写简单的Map和Reduce函数,即可实现复杂的并行计算任务。
2. 高度可扩展性:MapReduce框架能够处理海量数据,具有高度的可扩展性。
3. 容错性强:MapReduce框架具有容错机制,能够在节点故障时保持计算的正确性。
四、遗留代码的MapReduce并行化重构方法针对遗留代码的并行化重构,本文提出以下方法:1. 代码分析与理解:首先对遗留代码进行详细的分析和理解,明确代码的功能、结构以及数据依赖关系。
这有助于确定哪些部分适合进行并行化重构。
2. 设计并行化方案:根据代码的特点和需求,设计合理的并行化方案。
这包括确定Map和Reduce阶段的划分、任务调度策略等。
3. 模块化改造:将遗留代码进行模块化改造,降低模块间的耦合度,提高代码的可读性和可维护性。
基于MapReduce的并行编程研究-习荣华
全年最高气温
Step 1:输入文件其格式为:每一行字符从0 开始计数,第6 个到第9个 字符为年,第16个到第19个字符为温度,在 map 过程中,通过对每一 行字符串的解析,得到年-温度的key-value 对作为输出
0aaaa1990aaaaaa0039a 0bbbb1991bbbbbb0045a 0cccc1992cccccc0041c 0dddd1993dddddd0043d 0eeee1994eeeeee0041e 0aaaa1990aaaaaa0044a 0bbbb1991bbbbbb0020a 0cccc1992cccccc0030c 0dddd1993dddddd0033d 0eeee1994eeeeee0031e 0aaaa1990aaaaaa0041a 0bbbb1991bbbbbb0040a 0cccc1992cccccc0040c 0dddd1993dddddd0043d 0eeee1994eeeeee0041e (1990,39) (1991,45) (1992,41) (1993,43) (1994,41) (1990,44) (1991,20) (1992,30) (1993,33) (1994,31) (1990,41) (1991,40) (1992,40) (1993,43) (1994,41)
split
词频统计
Step 2:在输入文件分割完成之后,使用用户编写好的 Map 函数从而产生<key,value>集 <Hello,1> <Hadoop,1> <Bye,1> <Hadoop,1> <Hello,1> <World,1> <GoodBye,1> <World,1>
基于MapReduce的文本层次聚类并行化
龙源期刊网
基于MapReduce的文本层次聚类并行化
作者:余晓山吴扬扬
来源:《计算机应用》2014年第06期
摘要:针对传统的层次聚类算法在处理大规模文本时可扩展性不足的问题,提出基于MapReduce编程模型的并行化文本层次聚类算法。
将基于文本向量分量组特征统计的垂直数据划分算法应用于MapReduce的数据分发,将MapReduce的排序特性应用于合并点的选择,使得算法更加高效,同时有利于提高聚类精度。
实验结果表明了利用该算法进行大规模文本聚类的有效性及良好的可扩展性。
关键词:文本聚类;层次聚类;数据划分;MapReduce;并行计算
中图分类号: TP391.1
4 结语
本文根据大规模文本聚类的需要,深入研究了MapReduce编程模型的数据分发策略及排序特性,提出了一种基于数据并行的层次聚类算法的并行实现,从而使得层次聚类算法也可以应用于并行文本聚类。
最后,在Hadoop上验证了该算法具有良好的并行性能,对于大规模数据集的处理具有明显的优势。
实验中也分析了算法输入参数与集群规模的关系,以及在具体应用MapReduce需要注意的一些参数配置,对一些参数进行针对性的调优能让应用的处理效率得到显著提高,充分发挥MapReduce进行大规模数据处理的优势。
分布式聚类算法
分布式聚类算法分布式聚类算法是一种将数据分布在多个计算节点上进行聚类分析的算法。
随着大数据时代的到来,传统的单机聚类算法在处理大规模数据时面临着计算资源不足、运行时间过长等问题。
而分布式聚类算法通过将数据划分到多个节点上进行并行计算,不仅能够充分利用集群资源,提高计算效率,还能够处理大规模数据集。
在传统的单机聚类算法中,常用的方法有K-means、层次聚类等。
然而,在处理大规模数据集时,这些方法往往面临着运行时间过长、内存不足等问题。
因此,研究者们开始关注如何将这些方法扩展到分布式环境下。
一种常用的分布式聚类算法是基于MapReduce框架的并行K-means。
MapReduce框架是一种用于处理大规模数据集的并行计算模型,在Google提出后得到了广泛应用。
基于MapReduce框架的并行K-means将原始数据划分为多个子集,在每个子集上独立地进行K-means迭代,并通过Reduce操作来合并各个子集得到最终结果。
然而,并行K-means也存在一些问题。
首先,由于数据的划分是随机的,可能导致某些数据点被分配到不同的子集中,从而影响聚类结果。
其次,由于每次迭代只是在子集上进行,可能导致聚类中心不断变化,从而影响聚类结果的稳定性。
因此,研究者们提出了一些改进方法来解决这些问题。
一种改进方法是基于谱聚类的分布式聚类算法。
谱聚类是一种基于图论的聚类算法,在处理大规模数据时具有较好的性能。
基于谱聚类的分布式算法将原始数据划分为多个子集,在每个子集上独立地进行谱聚类,并通过合并操作来得到最终结果。
另一种改进方法是基于层次聚类的分布式算法。
层次聚类是一种自底向上或自顶向下逐步合并或划分簇的方法,在处理大规模数据时具有较好的可扩展性。
基于层次聚类的分布式算法将原始数据划分为多个子集,并在每个子集上独立地进行层次聚类,并通过合并操作来得到最终结果。
除了以上两种改进方法外,还有其他一些新颖且有效的分布式聚类算法被提出。
基于MapReduce和IFOA的并行密度聚类算法
第 5期
胡 健,等:基于 MapReduce和 IFOA的并行密度聚类算法
·13 37 ·
文献[11]提出 可 以 利 用 均 分 网 格 的 方 法 对 数 据 进 行 分 割,并 以此提出了 MRDBSCAN算法,以每个网格分区为单位分布式 运行 DBSCAN算法,再逐步合并每个网格分区形成聚类结果, 然而算法明显存 在 两 个 问 题:a)网 格 划 分 的 阈 值 以 及 参 数 的 选取会对算法的 聚 类 效 果 产 生 影 响;b)算 法 在 获 取 全 局 簇 的 过程中,时间开销较大。为了能更合理地划分数据,同时提升 获取全局簇的效率,王兴等人[12]提出了 IPDBSCAN算法,算 法由三个步骤构成:a)根据二分法实现网格数据的自动划分, 并利用贪 心 算 法 进 行 了 网 格 数 据 的 重 组;b)通 过 并 行 执 行 DBSCAN算法获得局部聚类候选集;c)利用 R tree结构来合 并局部聚类 的 结 果,提 升 获 取 全 局 簇 的 效 率。 此 外,Chen等 人[13]提出了 Spark下的 DBSCANPSM 算法,在数据分区阶段 引入 KD树,结合邻居查询,减少对数据集的访问次数,并单 独 提 取 局 部 簇 的 特 征 点 作 为 合 并 局 部 簇 的 依 据 ,从 而 减 少 局 部 簇 合 并 所 需 的 时 间 开 销。 实 验 表 明,IPDBSCAN 和 DBSCANPSM 算法 能 更加有 效 地 划 分 数 据,且 提 高 了 合 并 局 部簇的效率。然而这两种算法仍然未将分布式的思想运用 到 全 局 簇 的 获 取 上 ,因 此 算 法 的 整 体 并 行 性 能 有 待 提 高 。 此 外,算法仍然对划分网格边长的阈值和 DBSCAN的参数选取 敏感。为进 一 步 解 决 聚 类 参 数 选 取 敏 感 的 问 题,宋 董 飞 等 人 提 [14] 出了 Hadoop下 基 于 kdist图 的 HDBSCAN算 法,对 数据进行分区之后,通过使用 kdist图来计算密度聚类的 ε 邻域值;胡赢双 提 [15] 出了基于 MapReduce的最优 2ε邻域密 度聚类算法,采用了 ε优化算法,在 ε和 2ε之间寻找最优 ε 值。实验证明,这 两 种 算 法 均 提 升 了 聚 类 效 果 的 精 确 值,有 效解决了 ε参数选取敏感问题,然而这些算法对另一个聚类 参数的选取仍然敏感,且 kdist图和 ε优化算法在对参数的 全局寻优上表 现 不 佳,存 在 一 定 的 局 限 性,因 此 算 法 的 参 数 寻优能力有待提升。
ABC_Kmeans聚类算法的MapReduce并行化研究
人工蜂群 (ABC) 算 法 是 2005 年 根 据 蜂 群 觅 食 的 行 为 提 出的一种 群 体 智 能 算 法,其 结 构 简 单、收 敛 速 度 快、 容 易 实 现,更适合于计算机编程[3]。本文将一种改进的人工蜂群算 法 融入到 K _means中进行迭代,降低了对 初 始 聚 类 中 心 点 的 依 赖,提高了全局寻优能力,但在当今海量数据的情况下,效率 还是 堪 忧, 因 此 将 本 文 提 出 的 ABC _Kmeans 算 法 采 用 Ha
关 键 词 :K-means; 聚 类 ; 人 工 蜂 群 ; MapReduce
犕犪狆犚犲犱狌犮犲犘犪狉犪犾犾犲犾犛狋狌犱狔狅犳犃犅犆 _犓犿犲犪狀狊犆犾狌狊狋犲狉犻狀犵犃犾犵狅狉犻狋犺犿
YuanXiaoyan
(Collegeofcomputer,Sichuan UniversityofArtsandScience,Dazhou 635000,China) 犃犫狊狋狉犪犮狋:Withthemassivegrowthofdata,dataclusteringalgorithmresearchisfacingthechallengeofmassdataminingandprocess ing.ForK - meansclusteringalgorithmtothedependenceoftheinitialclusteringcenteristoostrong,andpoorglobalsearchabilityshort comings,willbeanimprovedartificialcolonyalgorithmcombinedwithK - meansalgorithm,ABC _Kmeansclusteringalgorithmispro posed,inordertoimprovetheperformanceofclustering.Inordertoimprovetheclusteringalgorithm’sabilitytodealwithhugeamounts ofdata,usestheMapReducemodelforparallelprocessingtoABC _Kmeans,designthe Map,CombineandReducefunctionrespectively, Throughtheexperimentsonseveralhugeamountsofdatacollection,show ABC_Kmeansparalleldesignofalgorithmhasgoodspeedupand scalability,applicabletotoday'shugeamountsofdataminingandprocessing. 犓犲狔狑狅狉犱狊:K-means;clustering;artificialbeecolony; MapReduce
基于MapReduce的文本层次聚类并行化_余晓山
收稿日期:2013-11-14;修回日期:2013-12-30。
基金项目:福建省科技计划重大项目(2011H6016);福建省科技计划重点项目(2011H0028)。
作者简介:余晓山(1989-),男,福建泉州人,硕士研究生,CCF 会员,主要研究方向:文本挖掘;吴扬扬(1957-),女,福建泉州人,教授,CCF 会员,主要研究方向:数据库、数据挖掘。
文章编号:1001-9081(2014)06-1595-05doi :10.11772/j.issn.1001-9081.2014.06.1595基于MapReduce 的文本层次聚类并行化余晓山,吴扬扬*(华侨大学计算机科学与技术学院,福建厦门361021)(*通信作者电子邮箱wuyangyang@sina.com)摘要:针对传统的层次聚类算法在处理大规模文本时可扩展性不足的问题,提出基于MapReduce 编程模型的并行化文本层次聚类算法。
将基于文本向量分量组特征统计的垂直数据划分算法应用于MapReduce 的数据分发,将MapReduce 的排序特性应用于合并点的选择,使得算法更加高效,同时有利于提高聚类精度。
实验结果表明了利用该算法进行大规模文本聚类的有效性及良好的可扩展性。
关键词:文本聚类;层次聚类;数据划分;MapReduce ;并行计算中图分类号:TP391.1文献标志码:AParallel text hierarchical clustering based on MapReduceYU Xiaoshan,WU Yangyang*(School of Computer Science and Technology,Huaqiao University,Xiamen Fujian 361021,China )Abstract:Concerning the deficiency in scalability of the traditional hierarchical clustering algorithm when dealing with large-scale text,a parallel hierarchical clustering algorithm based on the MapReduce programming model was proposed.The vertical data partitioning algorithm based on the statistical characteristic of the components group of text vector was developed for data partitioning in MapReduce.Additionally,the sorting characteristics of the MapReduce were applied to select the merge points,making the algorithm be more efficient and conducive to improve clustering accuracy.The experimental results show that the proposed algorithm is effective and has good scalability.Key words:text clustering;hierarchical clustering;data partitioning;MapReduce;parallel computing0引言文本聚类是文本挖掘的一项重要技术,可以应用于文本集的自动整理、话题的发现、有趣模式的提取等。
基于MapReduce的K_means并行算法及改进
基于MapReduce的K_means并行算法及改进衣治安;王月【摘要】In view of the problems that traditional k-means clustering algorithm faces in dealing with mass data, such as running out of memory, the operating in slow speed and so on, this paper proposes a parallel k-means algorithm based on MapReduce. At the same time, in order to overcome the blindness of the k-means algorithm in terms of determining the initial value, we use the canopy algorithm to improve the insufficient. The experimental results show that the parallel k-means algorithm basedon MapReduce has an effect on clustering before and after the improvement, not only the quality of the clustering has been increased,but in terms of processing large datasets. The speed-up ratio of the improved algorithm can get closer to the linear.%针对传统k_means聚类算法在处理海量数据时所面临的内存不足、运算速度慢等问题,提出了一种基于MapReduce的K_means并行算法,同时为了改善k_means算法在初始值确定方面的盲目性,采用canopy算法进行改进。
一种网格化聚类算法的MapReduce并行化研究
一种网格化聚类算法的MapReduce并行化研究张磊;张公让;张金广【摘要】面对增量式增长的聚类数据,受云计算并行化处理模式的启发,文中对一种网格化聚类算法进行了MapReduce并行化研究。
该算法首先利用网格处理技术对数据进行预处理,用网格预处理后所得单元的重心点取代该单元中保存的所有点,然后在MapReduce框架下将各个单元的重心点作为聚类分析的基本数据单元,进行聚类分析。
实验结果表明,该算法MapReduce并行化后部署在Hadoop集群上运行,具有与原来相同的聚类效果,并能节省聚类分析的时间和降低计算的复杂度,适合用于高纬度、增量式的海量数据的分析和挖掘。
%As the incremental growth of clustering data and inspired by the parallel processing model of cloud computing,conducted the MapReduce parallelization research for a clustering algorithm based on gird. This algorithm,firstly,preprocessed the data using the grid processing method,then used the center of gravity of the grid unit as the basic data unit for the clustering analysis under the MapReduce framework,instead of using all the points stored in the unit. The result of experiments demonstrate that this clustering algorithm after its MapReduce parallelization had the same result as before running in the Hadoop cluster. This clustering algorithm can also save the time of analysis and reduce the computational complexity. So,it is suitable for the analysis and data mining of incremental massive data with high latitudes.【期刊名称】《计算机技术与发展》【年(卷),期】2013(000)002【总页数】5页(P60-64)【关键词】网格;聚类;数据挖掘;MapReduce并行化【作者】张磊;张公让;张金广【作者单位】合肥工业大学管理学院,安徽合肥230009; 教育部过程优化与智能决策重点实验室,安徽合肥230009;合肥工业大学管理学院,安徽合肥230009; 教育部过程优化与智能决策重点实验室,安徽合肥230009;合肥工业大学管理学院,安徽合肥230009; 教育部过程优化与智能决策重点实验室,安徽合肥230009【正文语种】中文【中图分类】TP310 引言聚类分析是将客观对象的集合根据对象之间的某种相似性分组、组成多个集合的过程,使得不同集合中的数据尽可能相异,而同一集合中的数据尽可能相似[1]。
基于MapReduce的K-Means并行算法设计
基于MapReduce的K-Means并行算法设计目录一、实验设计 (2)1.实验说明 (2)2.算法说明 (2)(1).聚类 (2)(2).基于划分的聚类方法 (2)(3).K-Means算法 (2)(4).MapReduce并行化聚类算法设计思路 (3)3.类说明 (3)(1).Instance (3)(2).Cluster (4)(3).EuclideanDistance (4)(4).RandomClusterGenerator (4)(5).KMeans (4)(6).KmeansCluster (4)(7).KMeansDriver (5)二、实验结果说明 (5)1.实验设置 (5)2.源数据点 (6)3.聚类结果 (7)三、性能和不足 (7)四、源程序 (8)1.Instance类 (8)2.Cluster类 (10)3.EuclideanDistance类 (11)4.PageRankDriver类 (12)5.KMeans类 (15)6.KMeansCluster类 (18)7.KMeansDriver类 (20)五、心得体会 (23)一、实验设计1.实验说明在Eclipse环境下编写实现k-means算法。
2.算法说明(1).聚类将给定的多个对象分成若干组,组内的各个对象是相似的,组间的对象是不相似的。
进行划分的过程就是聚类过程,划分后的组称为簇(cluster)。
几种聚类方法:•基于划分的方法;•基于层次的方法;•基于密度的方法;•......(2).基于划分的聚类方法给定N个对象,构造K个分组,每个分组就代表一个聚类。
K个分组满足以下条件:(1)每个分组至少包含一个对象;(2)每个对象属于且仅属于一个分组。
K-Means算法是最常见和典型的基于划分的聚类方法(3).K-Means算法输入:待聚类的N个数据点,期望生成的聚类的个数K输出:K个聚类算法描述:选出K个点作为初始的cluster centerLoop:对输入中的每一个点p:{计算p到各个cluster的距离;将p归入最近的cluster;}重新计算各个cluster的中心如果不满足停止条件,goto Loop; 否则,停止(4).MapReduce并行化聚类算法设计思路将所有的数据分布到不同的MapReduce节点上,每个节点只对自己的数据进行计算。