基于MapReduce实现并行化K-means算法

阅读报告

阅读文献WeizhongZhao, H Ma, Q He – Springer “Parallel K-Means Clustering Base on MapReduce”, CloudComputing, 2009

 

解决问题:在分布式文件系统基础下的MapReduce编程模型实现K-Means聚类算法

 

运行效果:从节点增加时的总体速度提升,平均速度下降,数据量增大等多个条件下对算法进行实验,算法表现良好。

 

具体方法

算法伪代码:

k-means的每一次迭代都可以分为以下3个步骤。

第一步:Map:对于每一个点,将其对应的最近的聚类中心

基于MapReduce实现并行化K-means算法_第1张图片

第二步:Combine:刚完成map的机器在本机上都分别完成同一个聚类的点的求和,减少reduce操作的通信量和计算量。

基于MapReduce实现并行化K-means算法_第2张图片

第三步:reduce:将同一聚类中心的中间数据再进行求和,得到新的聚类中心

基于MapReduce实现并行化K-means算法_第3张图片

具体细节在伪代码中的解析都非常详尽,这里不再赘述了。

 

算法优点:

1.      将聚类中心的信息作为全局变量,使聚类归属分配时不需要占用带宽。

2.      利用combine本地先进行同一聚类的归并,减少到reduce的传输量和计算量。

3.      算法规范,简单。

        

算法缺陷:

         中规中矩,将k-means并行化处理没有本质上的创新,没有什么很好的优化机制。

 

你可能感兴趣的:(基于MapReduce实现并行化K-means算法)