【转载】各种聚类算法的比较

聚类的目标是使同一类对象的相似度尽可能地大;不同类对象之间的相似度尽可能地小。目前聚类的方法很多,根据基本思想的不同,大致可以将聚类算法分为五大类:层次聚类算法、分割聚类算法、基于约束的聚类算法、机器学习中的聚类算法和用于高维度的聚类算法。摘自 数据挖掘中的聚类分析研究综述 这篇论文。

1、层次聚类算法

1.1聚合聚类

1.1.1相似度依据距离不同:Single-Link:最近距离、Complete-Link:最远距离、Average-Link:平均距离

1.1.2最具代表性算法

1)CURE算法

特点:固定数目有代表性的点共同代表类

优点:识别形状复杂,大小不一的聚类,过滤孤立点

2)ROCK算法

特点:对CURE算法的改进

优点:同上,并适用于类别属性的数据

3)CHAMELEON算法

特点:利用了动态建模技术

1.2分解聚类

1.3优缺点

优点:适用于任意形状和任意属性的数据集;灵活控制不同层次的聚类粒度,强聚类能力

缺点:大大延长了算法的执行时间,不能回溯处理

2、分割聚类算法

2.1基于密度的聚类

2.1.1特点

将密度足够大的相邻区域连接,能有效处理异常数据,主要用于对空间数据的聚类

2.1.2典型算法

1)DBSCAN:不断生长足够高密度的区域

2)DENCLUE:根据数据点在属性空间中的密度进行聚类,密度和网格与处理的结合

3)OPTICS、DBCLASD、CURD:均针对数据在空间中呈现的不同密度分不对DBSCAN作了改进

2.2基于网格的聚类

2.2.1特点

利用属性空间的多维网格数据结构,将空间划分为有限数目的单元以构成网格结构;

1)优点:处理时间与数据对象的数目无关,与数据的输入顺序无关,可以处理任意类型的数据

2)缺点:处理时间与每维空间所划分的单元数相关,一定程度上降低了聚类的质量和准确性

2.2.2典型算法

1)STING:基于网格多分辨率,将空间划分为方形单元,对应不同分辨率

2)STING+:改进STING,用于处理动态进化的空间数据

3)CLIQUE:结合网格和密度聚类的思想,能处理大规模高维度数据

4)WaveCluster:以信号处理思想为基础

2.3基于图论的聚类

2.3.1特点

转换为组合优化问题,并利用图论和相关启发式算法来解决,构造数据集的最小生成数,再逐步删除最长边

1)优点:不需要进行相似度的计算

2.3.2两个主要的应用形式

1)基于超图的划分

2)基于光谱的图划分

2.4基于平方误差的迭代重分配聚类

2.4.1思想

逐步对聚类结果进行优化、不断将目标数据集向各个聚类中心进行重新分配以获最优解

2.4.2具体算法

1)概率聚类算法

期望最大化、能够处理异构数据、能够处理具有复杂结构的记录、能够连续处理成批的数据、具有在线处理能力、产生的聚类结果易于解释

2)最近邻聚类算法——共享最近邻算法SNN

特点:结合基于密度方法和ROCK思想,保留K最近邻简化相似矩阵和个数

不足:时间复杂度提高到了O(N^2)

3K-Medioids算法

特点:用类中的某个点来代表该聚类

优点:能处理任意类型的属性;对异常数据不敏感

4K-Means算法

1》特点:聚类中心用各类别中所有数据的平均值表示

2》原始K-Means算法的缺陷:结果好坏依赖于对初始聚类中心的选择、容易陷入局部最优解、对K值的选择没有准则可依循、对异常数据较为敏感、只能处理数值属性的数据、聚类结构可能不平衡

3》K-Means的变体

Bradley和Fayyad等:降低对中心的依赖,能适用于大规模数据集

Dhillon等:调整迭代过程中重新计算中心方法,提高性能

Zhang等:权值软分配调整迭代优化过程

Sarafis:将遗传算法应用于目标函数构建中

Berkh in等:应用扩展到了分布式聚类

还有:采用图论的划分思想,平衡聚类结果,将原始算法中的目标函数对应于一个各向同性的高斯混合模型

5)优缺点

优点:应用最为广泛;收敛速度快;能扩展以用于大规模的数据集

缺点:倾向于识别凸形分布、大小相近、密度相近的聚类;中心选择和噪声聚类对结果影响大

3、基于约束的聚类算法

3.1约束

对个体对象的约束、对聚类参数的约束;均来自相关领域的经验知识

3.2重要应用

对存在障碍数据的二维空间按数据进行聚类,如COD(Clustering with Obstructed Distance):用两点之间的障碍距离取代了一般的欧式距离

3.3不足

通常只能处理特定应用领域中的特定需求

4、用于高维数据的聚类算法

4.1困难来源因素

1)无关属性的出现使数据失去了聚类的趋势

2)区分界限变得模糊

4.2解决方法

1)对原始数据降维

2)子空间聚类

CACTUS:对原始空间在二维平面上的投影

CLIQUE:结合基于密度和网格的聚类思想,借鉴Apriori算法

3)联合聚类技术

特点:对数据点和属性同时进行聚类

文本:基于双向划分图及其最小分割的代数学方法

4.3不足:不可避免地带来了原始数据信息的损失和聚类准确性的降低

5、机器学习中的聚类算法

5.1两个方法

1)人工神经网络方法

自组织映射:向量化方法,递增逐一处理;映射至二维平面,实现可视化

基于投影自适应谐振理论的人工神经网络聚类

2)基于进化理论的方法

缺陷:依赖于一些经验参数的选取,并具有较高的计算复杂度

模拟退火:微扰因子;遗传算法(选择、交叉、变异)

5.2优缺点

优点:利用相应的启发式算法获得较高质量的聚类结果

缺点:计算复杂度较高,结果依赖于对某些经验参数的选择

下面附上个人对聚类算法的选择及比较的理解:

时间: 2024-10-20 21:02:29

【转载】各种聚类算法的比较的相关文章

【转载】聚类算法小结

聚类算法总结:---------------------------------------------------------聚类算法的种类: 基于划分聚类算法(partition clustering) k-means: 是一种典型的划分聚类算法,它用一个聚类的中心来代表一个簇,即在迭代过程中选择的聚点不一定是聚类中的一个点,该算法只能处理数值型数据 k-modes: K-Means算法的扩展,采用简单匹配方法来度量分类型数据的相似度 k-prototypes: 结合了K-Means和K-M

转载: scikit-learn学习之K-means聚类算法与 Mini Batch K-Means算法

版权声明:<—— 本文为作者呕心沥血打造,若要转载,请注明出处@http://blog.csdn.net/gamer_gyt <—— 目录(?)[+] ====================================================================== 本系列博客主要参考 Scikit-Learn 官方网站上的每一个算法进行,并进行部分翻译,如有错误,请大家指正 转载请注明出处 ======================================

《机器学习实战》之K-均值聚类算法的python实现

<机器学习实战>之K-均值聚类算法的python实现 最近的项目是关于"基于数据挖掘的电路故障分析",项目基本上都是师兄们在做,我只是在研究关于项目中用到的如下几种算法:二分均值聚类.最近邻分类.基于规则的分类器以及支持向量机.基于项目的保密性(其实也没有什么保密的,但是怕以后老板看到我写的这篇博文,所以,你懂的),这里就不介绍"基于数据挖掘的电路故障分析"的思路了. 废话不多说了,开始正题哈. 基本K-均值聚类算法 基本K均值算法的基本思路为:首先选择

《机器学习实战》之二分K-均值聚类算法的python实现

<机器学习实战>之二分K-均值聚类算法的python实现 上面博文介绍了K-均值聚类算法及其用python实现,上篇博文中的两张截图,我们可以看到,由于K-均值聚类算法中由于初始质心的选取,会造成聚类的局部最优,并不是全局最优,因此,会造成聚类的效果并不理想,为克服K-均值算法收敛于局部最小值的问题,就有了二分K-均值算法. 二分K-均值聚类算法 二分K均值算法是基本K均值算法的直接扩充,其基本思想是:为了得到K个簇,首先将所有点的集合分裂成两个簇,然后从这些簇中选取一个继续分裂,迭代直到产生

K-Means 聚类算法

K-Means 概念定义: K-Means 是一种基于距离的排他的聚类划分方法. 上面的 K-Means 描述中包含了几个概念: 聚类(Clustering):K-Means 是一种聚类分析(Cluster Analysis)方法.聚类就是将数据对象分组成为多个类或者簇 (Cluster),使得在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别较大. 划分(Partitioning):聚类可以基于划分,也可以基于分层.划分即将对象划分成不同的簇,而分层是将对象分等级. 排他(Exclu

挑子学习笔记:两步聚类算法(TwoStep Cluster Algorithm)——改进的BIRCH算法

转载请标明出处:http://www.cnblogs.com/tiaozistudy/p/twostep_cluster_algorithm.html 两步聚类算法是在SPSS Modeler中使用的一种聚类算法,是BIRCH层次聚类算法的改进版本.可以应用于混合属性数据集的聚类,同时加入了自动确定最佳簇数量的机制,使得方法更加实用.本文在学习文献[1]和“IBM SPSS Modeler 15 Algorithms Guide”的基础上,融入了自己的理解,更详尽地叙述两步聚类算法的流程和细节.

谱聚类算法

转载自:[聚类算法]谱聚类(Spectral Clustering) 1.问题描述 谱聚类(Spectral Clustering, SC)是一种基于图论的聚类方法——将带权无向图划分为两个或两个以上的最优子图(sub-Graph),使子图内部尽量相似,而子图间距离尽量距离较远,以达到常见的聚类的目的. 对于图的相关定义如下: 对于无向图G = (V,E),V表示顶点集合,即样本集合,即一个顶点为一个样本:E表示边集合. 设样本数为n,即顶点数为n. 权重矩阵:W,为n*n的矩阵,其值wi,j为

发表在 Science 上的一种新聚类算法

今年 6 月份,Alex Rodriguez 和 Alessandro Laio 在 Science 上发表了一篇名为<Clustering by fast search and find of density peaks>的文章,为聚类算法的设计提供了一种新的思路.虽然文章出来后遭到了众多读者的质疑,但整体而言,新聚类算法的基本思想很新颖,且简单明快,值得学习.这个新聚类算法的核心思想在于对聚类中心的刻画上,本文将对该算法的原理进行详细介绍,并对其中的若干细节展开讨论. 最后,附上作者在补充

续前篇---数据挖掘之聚类算法k-mediod(PAM)原理及实现

上一篇博文中介绍了聚类算法中的kmeans算法. 无可非议kmeans由于其算法简单加之分类效率较高 已经广泛应用于聚类应用中. 然而kmeans并非十全十美的.其对于数据中的噪声和 孤立点的聚类带来的误差也是让人头疼的. 于是一种基于Kmeans的改进算法kmediod应运而生. kmediod和Kmeans算法核心思想大同小异,但是最大 的不同是在修正聚类中心的时候,kmediod是计算 类簇中除开聚类中心的每点到其他所有点 的聚类的最小值来优化新的聚类中心.正是 这一差别使得kmediod