码迷,mamicode.com
首页 > 编程语言 > 详细

【原创】各种聚类算法对比

时间:2015-07-23 19:07:18      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

像上一篇文章  《聚类思想分析》  所述, 聚类算法无所谓好坏,重点在于合理使用各类算法达到最优效果。

 

--------------------------------------------------------------------------------------------------------

 

下面所述算法都是各类算法原型,不含变形。

 

1. 划分聚类 VS  模糊聚类

 

以Kmeans和FCM算法为例:

 

FCM是Kmeans的改进,由硬性隶属关系提升为软性隶属。

 

FCM的优势:

软性隶属后,由于每个值对各类中心点都有贡献,因此中心点的迭代更易达到全局最优。

 

依据:

 

Kmeans的优化目标:  技术分享   中心迭代公式: 技术分享

 

FCM的优化目标:  技术分享    中心迭代公式: 技术分享

 

 

FCM相对Kmeans的优点: 1) 中心迭代更合理。  2) 鲁棒离群点

FCM相对Kmeans的缺点: 计算复杂度更高

 

同样,FCM和Kmeans有同样的缺点

 

2. 层次聚类  VS  密度聚类

 

以底上的层次聚类和DBSCAN算法为例:

 

DBSCAN的优势:

1. 速度快 kN  vs log(N)*N^2   

2. 基于事件密度更优于基于距离的自发现

 

DBSCAN的劣势:

参数难以控制,对聚类效果影响大。也可以说是参数敏感。

即:

因为DBSCAN使用簇的基于密度的定义,因此它是相对抗噪音的,并且能处理任意形状和大小的簇。但是如果簇的密度变化很大,例如ABCD四个簇,AB的密度大大大于CD,而且AB附近噪音的密度与簇CD的密度相当,这是当MinPs较大时,无法识别簇CD,簇CD和AB附近的噪音都被认为是噪音;当MinPs较小时,能识别簇CD,但AB跟其周围的噪音被识别为一个簇。

 

同样,两者最大的共同的缺点是:

技术分享

 

 

3. 先验聚类 VS 自发聚类

 

这里的定义如下:

技术分享

 

先验聚类的优点:

1) 精确度高   2)有明确优化目标

先验的缺点:

1) 速度慢   2)噪音敏感   3)难以确定K值

 

同样,自发聚类和先验聚类正好相异,这里不再赘述。

 

4. DBSCAN算法 VS 共享近邻SNN算法

 

对于DBSCAN上述的问题,SNN可以一定程度的缓解。

 

技术分享

 

 

 

由于SNN没有采用一般的密度定义,而是通过与其它点的关系来描述自己,所以SNN一定程度解决了疏松密度难以调衡的问题。

 

但是SNN速度较慢,是 kN^2 的算法。同样,SNN也是参数敏感的。

 

 

最后,灵活运用各种聚类算法应对场景问题才是关键。

 

 

未经博主允许,不得转载任何文章。

【原创】各种聚类算法对比

标签:

原文地址:http://www.cnblogs.com/xiaoboCSer/p/4671101.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!