聚类算法学习笔记(1)

聚类算法:聚类就是按照某个特定标准(如距离准则)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。即聚类后同一类的数据尽可能聚集到一起,不同数据尽量分离。也就是说,可以利用聚类算法将全部的离散数据整合并分化成几个相互明显不同的几个数据团。相关的研究和应用领域包括数据挖掘、统计学、机器学习、空间数据库技术、生物学以及市场营销等。

根据目前学习到的知识,将聚类算法可以划分成如下几个方向:

1  基于划分的聚类算法

k-means:是一种典型的划分聚类算法,它用一个聚类的中心来代表一个簇,即在迭代过程中选择的聚点不一定是聚类中的一个点,该算法只能处理数值型数据
k-modes:K-Means算法的扩展,采用简单匹配方法来度量分类型数据的相似度
k-prototypes:结合了K-Means和K-Modes两种算法,能够处理混合型数据
k-medoids:在迭代过程中选择簇中的某点作为聚点,PAM是典型的k-medoids算法
CLARA:CLARA算法在PAM的基础上采用了抽样技术,能够处理大规模数据
CLARANS:CLARANS算法融合了PAM和CLARA两者的优点,是第一个用于空间数据库的聚类算法
Focused CLARAN:采用了空间索引技术提高了CLARANS算法的效率
PCM:模糊集合理论引入聚类分析中并提出了PCM模糊聚类算法

2  基于层次的聚类算法

CURE:采用抽样技术先对数据集D随机抽取样本,再采用分区技术对样本进行分区,然后对每个分区局部聚类,最后对局部聚类进行全局聚类
ROCK:也采用了随机抽样技术,该算法在计算两个对象的相似度时,同时考虑了周围对象的影响
CHEMALOEN(变色龙算法):首先由数据集构造成一个K-最近邻图Gk ,再通过一个图的划分算法将图Gk 划分成大量的子图,每个子图代表一个初始子簇,最后用一个凝聚的层次聚类算法反复合并子簇,找到真正的结果簇
SBAC:SBAC算法则在计算对象间相似度时,考虑了属性特征对于体现对象本质的重要程度,对于更能体现对象本质的属性赋予较高的权值
BIRCH:BIRCH算法利用树结构对数据集进行处理,叶结点存储一个聚类,用中心和半径表示,顺序处理每一个对象,并把它划分到距离最近的结点,该算法也可以作为其他聚类算法的预处理过程
BUBBLE:BUBBLE算法则把BIRCH算法的中心和半径概念推广到普通的距离空间
BUBBLE-FM:BUBBLE-FM算法通过减少距离的计算次数,提高了BUBBLE算法的效率

3  基于密度的聚类算法

DBSCAN:DBSCAN算法是一种典型的基于密度的聚类算法,该算法采用空间索引技术来搜索对象的邻域,引入了“核心对象”和“密度可达”等概念,从核心对象出发,把所有密度可达的对象组成一个簇
GDBSCAN:算法通过泛化DBSCAN算法中邻域的概念,以适应空间对象的特点
DBLASD:
OPTICS:OPTICS算法结合了聚类的自动性和交互性,先生成聚类的次序,可以对不同的聚类设置不同的参数,来得到用户满意的结果
FDC:FDC算法通过构造k-d tree把整个数据空间划分成若干个矩形空间,当空间维数较少时可以大大提高DBSCAN的效率

4  基于网络的聚类算法

STING:利用网格单元保存数据统计信息,从而实现多分辨率的聚类
WaveCluster:在聚类分析中引入了小波变换的原理,主要应用于信号处理领域。(备注:小波算法在信号处理,图形图像,加密解密等领域有重要应用,是一种比较高深和牛逼的东西)
CLIQUE:是一种结合了网格和密度的聚类算法
OPTIGRID:

5  基于神经网络的聚类算法

自组织神经网络SOM:该方法的基本思想是--由外界输入不同的样本到人工的自组织映射网络中,一开始时,输入样本引起输出兴奋细胞的位置各不相同,但自组织后会形成一些细胞群,它们分别代表了输入样本,反映了输入样本的特征

6  基于统计学的聚类算法

COBWeb:COBWeb是一个通用的概念聚类方法,它用分类树的形式表现层次聚类
CLASSIT:
AutoClass:是以概率混合模型为基础,利用属性的概率分布来描述聚类,该方法能够处理混合型的数据,但要求各属性相互独立

7  模糊聚类——FCM聚类算法

这个和之前的6种聚类算法相比较比较特殊。

1965年美国加州大学柏克莱分校的扎德教授第一次提出了‘集合’的概念。经过十多年的发展,模糊集合理论渐渐被应用到各个实际应用方面。为克服非此即彼的分类缺点,出现了以模糊集合论为数学基础的聚类分析。用模糊数学的方法进行聚类分析,就是模糊聚类分析[12]。

FCM算法是一种以隶属度来确定每个数据点属于某个聚类程度的算法。该聚类算法是传统硬聚类算法的一种改进。

    算法流程:
(1) 标准化数据矩阵;
(2) 建立模糊相似矩阵,初始化隶属矩阵;
(3) 算法开始迭代,直到目标函数收敛到极小值;
(4) 根据迭代结果,由最后的隶属矩阵确定数据所属的类,显示最后的聚类结果。

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

下面对几种常用的聚类算法从可伸缩性、适合的数据类型、高维性(处理高维数据的能力)、异常数据的抗干扰度、聚类形状和算法效率这六个方面进行了综合性能评价,评价的结果如下表格所示:(来源于网络相关资源)

算法名称
可伸缩性
适合的数据类型
高维性
异常数据的抗干扰性
聚类形状
算法效率
WaveCluster
很高
数值型
很高
较高
任意形状
很高
ROCK 
很高 
混合型 
很高很高 
任意形状
一般
BIRCH
较高 
数值型 
较低 
较低 
球形 
很高
CURE 
较高 
数值型 
一般 
很高 
任意形状 
较高
K-Prototypes 
一般 
混合型 
较低 
较低 
任意形状 
一般
DENCLUE 
较低 
数值型 
较高 
一般 
任意形状 
较高
OptiGrid 
一般 
数值型 
较高 
一般 
任意形状 
一般
CLIQUE 
较高 
数值型 
较高 
较高 
任意形状 
较低
DBSCAN 
一般 
数值型 
较低 
较高 
任意形状 
一般
CLARANS 
较低 
数值型 
较低  
较高 
球形  
较低


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

通过本文的学习和总结我们看到,聚类算法有几种主要的算法方式,一些已经有了实践性和使用价值,而另外一些正在处于理论阶段,包括出现的模糊聚类算法,都是我们今后研究和改进的方向。

在这里先列下这样的学习目录,后面将根据目录对目录中提到的相关算法进行系统的学习、研究、总结。


尊重版权!本文参考的文献有:

1、《四中聚类方法之比较》http://www.cnblogs.com/William_Fire/archive/2013/02/09/2909499.html

2、《聚类算法总结》 http://blog.chinaunix.net/uid-10289334-id-3758310.html

---------------------------------------------------------------------------------------------------------------------------------------------------------------------
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我知道了,下面是我的回答: 聚类算法是一种无监督学习算法,它可以将数据集中的数据按照某种规则进行分组,使得同一组内的数据相似度较高,不同组之间的数据相似度较低。聚类算法可以帮助我们对数据进行分类、分析和理解,同时也可以为其他机器学习任务提供数据预处理和特征提取的支持。 聚类算法的基本流程包括:确定聚类算法的目标函数、选择相似度度量方法、选择聚类算法、确定聚类的数量、进行聚类操作以及评估聚类效果。常见的聚类算法包括K-Means算法、层次聚类算法、密度聚类算法等。 K-Means算法是一种基于距离聚类算法,它的基本思想是将数据集中的数据划分为K个簇,使得同一簇内的数据相似度较高,不同簇之间的数据相似度较低。K-Means算法的优点是计算复杂度较低,容易实现,但是需要预先指定簇的数量和初始聚类中心。 层次聚类算法是一种基于相似度的聚类算法,它的基本思想是不断合并数据集中相似度最高的数据,直到所有数据都被合并为一个簇或达到预先设定的簇的数量。层次聚类算法的优点是不需要预先指定簇的数量和初始聚类中心,但是计算复杂度较高。 密度聚类算法是一种基于密度的聚类算法,它的基本思想是将数据集中的数据划分为若干个密度相连的簇,不同簇之间的密度差距较大。密度聚类算法的优点是可以发现任意形状的簇,但是对于不同密度的簇分割效果不佳。 以上是聚类算法的基础知识,希望能对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值