聚类算法实践(四)——算法总结

  前面的文章里总共提到了7种聚类算法,我们就会情不自禁地想知道,哪一种是“最好”的聚类算法?

  正如我在一开始就提到,聚类实际上是由用户来给定规则,从而实现分类的。所以所谓“最好”的聚类算法,就应该是那个聚类规则“最能反映系统特征”的算法(当然,在同样能反映系统特征的情况下,效率越高自然越好,比如AP算法就要优于K-centers算法)。

  在聚类算法中,最为关键的规则是什么呢?我个人认为,应该就是对样品相似性的描述。这不仅仅是指两两样品之间的直接相似度(也就是相似矩阵),还有如“A与B接近,B与C接近,那么A与C是否接近”这样的传递性问题。比如在K-means里面,这个问题就是否定的,K-means只认样品两两间的直接相似性(欧氏距离),而在Chameleon算法和谱聚类里,这种相似性就可以通过网络进行传递。因此K-means得到的就只能是凸型的聚类,而后两者则可以得到形状各异的聚类。但是,这样的相似性真的是我们需要的么?这就要根据实际的问题来判断了。所以算法的优劣归根到底要根据问题本身来判断。

最后比较一下之前提到的所以算法的特点

算法计算效率cluster形状cluster数目选取模型参数
average-linkage中等凸型一般
K-meansK-means接近大小的凸型敏感
谱聚类任意形状不敏感本征矢数目,不敏感
Chameleon中等任意形状不敏感RI和RC的相对权重,敏感
PCCA任意形状自动判断
SOM中上接近大小的凸型一般没有测试,估计不太敏感
Affinity Propagation任意形状敏感敏感
    原文作者:聚类算法
    原文地址: https://blog.csdn.net/sky88088/article/details/51569914
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞