1. k-means 聚类hadoop 平台
思路
1.1 在参考了
《数据算法-hadoop 、spark 》 289 页;文章 Research on Parallel k-means Algorithm Design Based on Hadoop Platform
基于云计算平台Hadoop的并行k-means聚类算法设计研究;http://blog.youkuaiyun.com/kghwettwe/article/details/43917107 代码
大概了解了 k-means 的流程
1.2 在map 主要做的是
计算各个数据点与聚类中心的距离并且找出与样本对应的最近中心。 计算新的聚类中心<key,value> 输入key MApreduce默认格式 ,即当前样本相对于输入数据文件其实点的偏移量, value 是当前样本各维度的值组成的字符串。输出: <key‘,value’> key‘是距离最近簇下标,value’是 样本点。
reduce 阶段:
根据map阶段的<key,value>重新计算聚类中心,更新聚类中心。输出:<key.id(下标),新的聚类中心>
在map阶段,减少数据通信,需要在本地map<key,value>做一次conbine(),
减少数据大小,具体是根据key,相加value的每个维度,并记录count。
下一步写代码,有时间研究在spark实现