mahout之canopy算法简介
来源:互联网 发布:费县四人杀人案知乎 编辑:程序博客网 时间:2024/09/21 09:26
K 均值聚类算法的最大的优点是:原理简单,实现起来也相对简单,同时执行效率和对于大数据量的可伸缩性还是较强的。然而缺点也是很明确的,首先它需要用户在执行聚类之前就有明确的聚类个数K的设置,这一点是用户在处理大部分问题时都不太可能事先知道的,一般需要通过多次试验找出一个最优的 K 值;其次就是,由于算法在最开始采用随机选择初始聚类中心的方法,所以算法对噪音和孤立点的容忍能力较差。所谓噪音就是待聚类对象中错误的数据,而孤立点是指与其他数据距离较远,相似性较低的数据。对于 K 均值算法,一旦孤立点和噪音在最开始被选作簇中心,对后面整个聚类过程将带来很大的问题,那么我们有什么方法可以先快速找出应该选择多少个簇,同时找到簇的中心,这样可以大大优化 K 均值聚类算法的效率,下面就介绍另一个聚类方法:Canopy 聚类算法。
Canopy聚类算法是一个将对象分组到类的简单、快速、精确地方法。每个对象用多维特征空间里的一个点来表示。这个算法使用一个快速近似距离度量和两个距离阈值 T1>T2来处理。基本的算法是,从一个点集合开始并且随机删除一个,创建一个包含这个店的Canopy,并在剩余的点集合上迭代。对于每个点,如果它的距离第一个点的距离小于T1,然后这个点就加入这个聚集中。除此之外,如果这个距离<T2,然后将这个点从这个集合中删除。这样非常靠近原点的点将避免所有的未来处理。这个算法循环到初始集合为空为止,聚集一个集合的Canopies,每个可以包含一个或者多个点。每个点可以包含在多于一个的Canopy中。
Canopy聚类经常被用作更加严格的聚类技术的初始步骤,像是K均值聚类。通过一个初始聚类,可以将更加耗费的距离度量的数量通过忽略初始canopies的点显著减少。
Canopy 聚类算法经常用于 K 均值聚类算法的预处理,用来找合适的 k 值和簇中心。
K 均值的最大问题是要求用户必须事先给出 k 的个数,k 的选择一般都基于一些经验值和多次实验结果,对于不同的数据集,k 的取值没有可借鉴性。另外,K 均值对“噪音”和孤立点数据是敏感的,少量这类的数据就能对平均值造成极大的影响。
虽然Canopy 聚类算法的引用有效的解决了初始选K的个数这一问题,可以看到在org.apache.mahout.clustering.syntheticcontrol.kmeans.job中是先调用了CanopyDriver.run方法来进行初始选K及中心点,然后再调KMeansDriver.run方法进行Kmeans聚类。
可是引进Canopy算法后,会带来新的问题,对于Canopy算法来说,阈值T1和T2的选择又是一大问题,网上也查不到相关资料,直是让人头痛...
参考资料:
2.http://blog.sina.com.cn/s/blog_62a9902f0100mr27.html
3.https://cwiki.apache.org/MAHOUT/canopy-clustering.html
4.Mahout_in_Action
- mahout之canopy算法简介
- Mahout 系列之--canopy 算法
- mahout之canopy聚类算法
- mahout之canopy聚类
- mahout 源码解析之聚类--Canopy算法
- mahout源码canopy算法分析之三CanopyReducer
- mahout源码canopy算法分析之二CanopyMapper
- Mahout学习之运行canopy算法错误及解决办法
- Mahout系列之Canopy聚类算法分析
- Mahout 聚类算法学习之Canopy(一)
- Mahout-Canopy
- mahout-0.6运行canopy聚类算法
- Mahout聚类算法学习之Canopy算法的分析与实现
- Mahout之聚类Canopy分析
- Canopy聚类算法简介
- mahout中kmeans算法和Canopy算法实现原理
- mahout中kmeans算法和Canopy算法实现原理
- Mahout聚类算法canopy源码分析(1)
- Silverlight中的反射
- 独酌九言
- 怎样理解阻抗匹配?
- 有关Server.Mappath详细接触
- 经常看到时钟线/数据线/地址线上串联一个小电阻有什么作用?
- mahout之canopy算法简介
- 经常看到在一个大的电容上还并联一个小电容,这是为什么?
- Android之DOM解析XML文件
- 多余的引脚怎么办?例如单片机不用IO口?
- 微软.x文件查看工具 SkinMesh View 0.5
- SQL嵌套查询
- Flex的拖动事件 DragEvent DragManager
- android程序中怎么实现平铺效果
- 颜色