划分方法聚类(三) Canopy+K-MEANS 算法解析

       前面的博文已经系统的讲述了K-MEANS算法以及由K-MEANS算法改进而来的一系列算法。在这里我们将Canopy与K-MEANS联系起来。

首先讲一下前面提到的Canopy算法。

Canopy算法

  与传统的聚类算法(比如K-means)不同,Canopy聚类最大的特点是不需要事先指定k(clustering的个数),因此具有很大的实际应用价值。与其他聚类算法相比,Canopy聚类虽然精度较低,但其在速度上有很大优势,因此可以使用Canopy聚类先对数据进行聚类,得到k值,以及大致的K歌中心点,再使用K-means进行进一步聚类。所以Canopy+K-means这种形式聚类算法聚类效果良好。

  Canopy算法解析:

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

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

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

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

  算法原理比较简单,就是对数据进行不断遍历,T2

       canopy效果图如下:


        划分方法聚类(三) Canopy+K-MEANS 算法解析_第1张图片

  Canopy算法优势:

  1、Kmeans对噪声抗干扰较弱,通过Canopy对比较小的NumPoint的Cluster直接去掉 有利于抗干扰。
  2、Canopy选择出来的每个Canopy的centerPoint作为Kmeans比较科学。
    3、只是针对每个Canopy的内容做Kmeans聚类,减少相似计算的数量。
  总结起来就是四个关键词:噪声点,K值,K中心点,计算开销。(尽管这个算法准确性不是很理想,但是还是有用武之地的)
    
     综合Canopy算法与K-MEANS算法,于是有了Canopy+K-MEANS的混合算法。
  Canopy+K-MEANS算法思路如下:

  Stage1、聚类最耗费计算的地方是计算对象相似性的时候,Canopy Method在第一阶段选择简单、计算代价较低的方法计算对象相似性,将相似的对象放在一个子集中,这个子集被叫做Canopy,通过一系列计算得到若干CanopyCanopy之间可以是重叠的,但不会存在某个对象不属于任何Canopy的情况,可以把这一阶段看做数据预处理;

   Stage2在各个Canopy内使用传统的聚类方法(K-means),不属于同一Canopy的对象之间不进行相似性计算。从这个方法起码可以看出两点好处:首先,Canopy不要太大且Canopy之间重叠的不要太多的话会大大减少后续需要计算相似性的对象的个数;其次,类似于K-means这样的聚类方法是需要人为指出K的值的,通过Stage1得到的Canopy个数完全可以作为这个K值,一定程度上减少了选择K的盲目性。




你可能感兴趣的:(聚类学习)