Mahout-Kmeans
来源:互联网 发布:上淘宝买东西怎么注册 编辑:程序博客网 时间:2024/06/06 09:18
2.Kmeans聚类
Kmeans算法思想也比较简单 :可见http://baike.baidu.com/view/3447609.htm
首先从n个数据对象选择 k 个对象作为初始聚类中心;
而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),
分别将它们分配给与其最相似的(聚类中心所代表的)聚类;
然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);
不断重复这一过程直到标准测度函数开始收敛为止。
mahout Kmeans聚类实现 :
(1)参数input指定待聚类的所有数据点,clusters指定初始聚类中心
如果指定参数k,由org.apache.mahout.clustering.kmeans.RandomSeedGenerator.buildRandom
通过org.apache.hadoop.fs直接从input指定文件中随机读取k个点放入clusters中
(2)根据原数据点和上一次迭代(或初始聚类)的聚类中心计算本次迭代
的聚类中心,输出到clusters-N目录下。
该过程由org.apache.mahout.clustering.kmeans下的
KMeansMapper\KMeansCombiner\KMeansReducer\KMeansDriver实现
KMeansMapper:在configure中初始化mapper时读入上一次迭代产生或初始聚类中心
(每个mapper都读入所有的聚类中心);
map方法对输入的每个点,计算距离其最近的类,并加入其中
输出key为该点所属聚类ID,value为KMeansInfo实例,包含点的个数和各分量的累加和
KMeansCombiner:本地累加KMeansMapper输出的同一聚类ID下的点个数和各分量的和
KMeansReducer:累加同一聚类ID下的点个数和各分量的和,求本次迭代的聚类中心;
并根据输入Delta判断该聚类是否已收敛:上一次迭代聚类中心与本次迭代聚类中心距离<Delta;
输出各聚类中心和其是否收敛标记
KMeansDriver:控制迭代过程直至超过最大迭代次数或所有聚类都已收敛
每轮迭代后,KMeansDriver读取其clusters-N目录下的所有聚类,若所有聚类已收敛
则整个Kmeans聚类过程收敛了。
参数调整 :
manhout Kmeans聚类有两个重要参数:收敛Delta和最大迭代次数
个人觉得Delta值越小,表示收敛条件越高,因此最终收敛的聚类数可能会降低,
而最大迭代次数可通过观察每次迭代后收敛聚类数决定,当收敛聚类数几乎不再变化或震荡时可停止迭代了
- Mahout-Kmeans
- Mahout kmeans
- mahout使用KMeans算法
- Mahout运行Kmeans
- Mahout-Kmeans MR
- mahout kmeans 测试
- Mahout kmeans聚类
- Mahout 模糊kmeans
- mahout-kmeans笔记
- mahout kmeans 例子
- mahout中的kmeans简单实例
- mahout中的kmeans结果分析
- mahout kmeans 算法源码解读
- mahout之2-Kmeans聚类
- Mahout系列之----kmeans 聚类
- Mahout系列之----kmeans 聚类
- Mahout学习二--kmeans实例
- mahout 中聚类算法kmeans案例
- linux环境编码与程序字节转换思考
- TopFreeTheme精选免费模板【20130619】
- C++程序设计-第17周 二进制文件读写及大结局
- How To Remove Drop-Off Libraries
- 如何快速获取WWDC2013的所有视频及文档
- Mahout-Kmeans
- Mahout-Canopy
- Mahout-mean shift
- VLC 架构初步分析
- 2003/2008server禁止远程桌面之间文字的复制粘贴方法
- Kendo UI开发教程(3): 初始化Data 属性
- Mahout-Kmeans2
- 算法_需要熟悉的算法
- SharePoint 2010 with Breadcrumb Navigation