canopy聚类算法原理

时间:2022-12-08 17:15:11

    canopy生成算法也被称为canopy聚类,是一种快速近似的聚类算法。它的优势在于得到簇的速度非常快,只需一次遍历数据即可得到结果。这一优势也是它的缺点。该算法无法给出精确的簇结果。但是它可以给出最优的簇的数量,不像k-means那样需要预先指定簇数量。

    那么针对一个具体的canopy应该如何创建呢?下面介绍创建一个普通的canopy算法的步骤。

    1)原始数据集合List按照一定的规则进行排序(这个规则是任意的,但是一旦确定就不再更改),初始距离阈值为T1、T2,且T1 > T2(T1、T2的设定可以根据用户的需要,或者使用交叉验证获得)。

    2)在List中随机挑选一个数据向量A,使用一个粗糙距离计算方式计算A与List中其他样本数据向量之间的距离d。

    3)根据第2步中的距离d,把d小于T1的样本数据向量划到一个canopy中,同时把d小于T2的样本数据向量从候选中心向量名单(这里可以理解为就是List)中移除。

    4)重复第2、3步,直到候选中心向量名单为空,即List为空,算法结束。

    这种方法可以防止一个现有的canopy点成为新的canopy中心。我们不希望在一个现有的canopy的附近生成一个冗余canopy。canopy聚类算法原理

    canopy聚类的输出很适合用来作为k-means的起始点,因为初始中心的准确性比随机选择要高,所以能够改善聚类的效果。