Canopy Clustering
Canopy算法是基于Kmeans算法的一种优化的聚类方法。
优化体现在:
1.前期能通过一些低性能的算法,快速的获取聚类中心
2.分好的每个聚类内部在进行k-means计算(不同聚类之间不进行相似度计算)
实现原理:(借助网上的一张截图)
算法步骤:
(1 ) 将数据集向量化,然后放到list集合中,同时设定两个距离阈(yu)值:T1和T2
(2)循环从list中去取一个,作为一个聚类中心,放到centerlist中,并从list中移除该点
(3)循环从centerlist中 比较 与周围的点于阈(yu)值之间的关系,小于最小T1阈值,说明两个值相似,放到一个聚类中,并从list中移除;如果大于最大阈值T2,那么就单独作为一个聚类中心,并从list中移除;否则在T1和T2之间就不分别加到各个聚类中心去,但依然保留在list中
(4)迭代2~3步直至list中元素为null,算法结束。
伪代码:(借鉴于炼数成金)
Canopy算法的优缺点:
1.不需要事先指定k值(即clustering的个数)
2.精度较低,但其速度上有很大的优势
3.前期可以使用Canopy聚类先对数据进行“粗”聚类,得到k值后再使用K-means进行进一步的“细”聚类