Canopy算法流程图:
前几天学习Canopy算法,看了上面的流程图一直不懂,后来对整个流程模拟了一遍,并画了个图,才逐渐理解了,现将流程用自己的语言叙述一遍:
我们假设每个数据用小圆点来表示。在计算机中用List集合存储。
Canopy算法首先选择两个距离阈值:T1和T2,其中T1 > T2
(1)原始状态下的数据还没有分类,所以从集合中取出一点P,将P作为第一个类,我们也将类称为Canopy。
(2)继续从集合中取点,比如P,计算P到已经产生的所有Canopy的距离,如果到某个Canopy的距离小于T1,则将P加入到该Canopy;如果P到所有Canopy中心的距离都大于T1,则将P作为一个新Canopy,如下图中的Q就是一个新的Canopy。
(3)如果P到该Canopy距离小于T2,则表示P和该Canopy已经足够近,此时将P从从集合中删除,避免重复加入到其他Canopy。
(4)对集合中的点继续执行上述操作直到集合为空,算法结束,聚类完成。