Canopy一般用在Kmeans之前的粗聚类。考虑到Kmeans在使用上必须要确定K的大小,而往往数据集预先不能确定K的值大小的,这样如果 K取的不合理会带来K均值的误差很大(也就是说K均值对噪声的抗干扰能力较差)。总之基于以下三种原因,选择利用Canopy聚类做为Kmeans的前奏 比较科学、也是Canopy的优点。
一、canopy算法的优缺点
Canopy的优点:
1、Kmeans对噪声抗干扰较弱,通过Canopy对比较小的NumPoint的Cluster直接去掉 有利于抗干扰。
2、Canopy选择出来的每个Canopy的centerPoint作为Kmeans比较科学。
3、只是针对每个Canopy的内容做Kmeans聚类,减少相似计算的数量。
Canopy的缺点:算法中 T1、T2(T2 < T1) 的确定问题 (在并行计算上Maper的T1、T2 可以和Raduce的T1、T2不同)
二、canopy聚类过程
while D is not empty
select element d from D to initialize canopy c
remove d from D
Loop through remaining elements in D
if distance between d_i and c < T1 : add element to the canopy c
if distance between d_i and c < T2 : remove element from D
end
add canopy c to the list of canopies C
end