本文主要介绍weka的cluster工具集中的Canopy算法,包括算法原理、算法的应用场景以及算法对输入数据的要求等内容。
算法简介
Canopy算法是一种比较经典的聚类算法,可称为粗聚类
,它的输出并不是最重要的结果,而是为其他精确算法服务的。它不需要事先确定如k-means方法所需的聚类中心个数,并可以粗略地估计出聚类中心的个数之后再采用k-means算法
,能有效降低k-means等精确聚类算法的计算复杂度。
当前Canopy算法在mahout大数据机器学习工具中应用较多,能与hadoop结合产生非常好的计算效果。(其近似计算以降低算力需求
的思想非常适合大数据分析算法。)
算法原理
1.一图知大意
图片来源:http://picksesame.blogspot.com/2011/05/canopy-clustering.html
如上图,Canopy算法有两个阈值T1和T2,算法的核心就是对大于T1、大于T2且小于T1、小于T2三种阈值范围内的instance(实例点)采用不同的处理方式。具体算法流程见下一节。
2.算法流程
当实例集 D D D非空时:
从 D D D中选择元素 d d d作为canopy c c c;
从 D D D中移除元素 d d d;
对 D D D中除元素 d d d以外的其它元素进行遍历:
如果 d i d_i di与 c c c之间的距离 < T 1 <T_1 <T1,则将 d i d_i di加入canopy c c c的集合;(*1)
如果 d i d_i d