聚类算法总结.docx
- 文档编号:8405588
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:9
- 大小:211.69KB
聚类算法总结.docx
《聚类算法总结.docx》由会员分享,可在线阅读,更多相关《聚类算法总结.docx(9页珍藏版)》请在冰豆网上搜索。
聚类算法总结
1.聚类定义
“聚类是把相似的对象通过静态分类的方法分成不同的组别或者更多的子集(subset),这样让在同一个子集中的成员对象都有一些相似的属性”——wikipedia
“聚类分析指将物理或抽象对象的集合分组成为由类似的对象组成的多个类的分析过程。
它是一种重要的人类行为。
聚类是将数据分类到不同的类或者簇这样的一个过程,所以同一个簇中的对象有很大的相似性,而不同簇间的对象有很大的相异性。
”——XX百科
说白了,聚类(clustering)是完全可以按字面意思来理解的——将相同、相似、相近、相关的对象实例聚成一类的过程。
简单理解,如果一个数据集合包含N个实例,根据某种准则可以将这N个实例划分为m个类别,每个类别中的实例都是相关的,而不同类别之间是区别的也就是不相关的,这个过程就叫聚类了。
2.聚类过程:
1)数据准备:
包括特征标准化和降维.
2)特征选择:
从最初的特征中选择最有效的特征,并将其存储于向量中.
3)特征提取:
通过对所选择的特征进行转换形成新的突出特征.
4)聚类(或分组):
首先选择合适特征类型的某种距离函数(或构造新的距离函数)进行接近程度的度量;而后执行聚类或分组.
5)聚类结果评估:
是指对聚类结果进行评估.评估主要有3种:
外部有效性评估、内部有效性评估和相关性测试评估.
3聚类算法的类别
没有任何一种聚类技术(聚类算法)可以普遍适用于揭示各种多维数据集所呈现出来的多种多样的结构,根据数据在聚类中的积聚规则以及应用这些规则的方法,有多种聚类算法.聚类算法有多种分类方法将聚类算法大致分成层次化聚类算法、划分式聚类算法、基于密度和网格的聚类算法和其他聚类算法,如图1所示
的4个类别.
3.聚类算法
基于层次聚类算法:
CURE:
采用抽样技术先对数据集D随机抽取样本,再采用分区技术对样本进行分区,然后对每个分区局部聚类,最后对局部聚类进行全局聚类
ROCK:
也采用了随机抽样技术,该算法在计算两个对象的相似度时,同时考虑了周围对象的影响
CHEMALOEN(变色龙算法):
首先由数据集构造成一个K-最近邻图Gk,再通过一个图的划分算法将图Gk划分成大量的子图,每个子图代表一个初始子簇,最后用一个凝聚的层次聚类算法反复合并子簇,找到真正的结果簇
SBAC:
SBAC算法则在计算对象间相似度时,考虑了属性特征对于体现对象本质的重要程度,对于更能体现对象本质的属性赋予较高的权值
BIRCH:
BIRCH算法利用树结构对数据集进行处理,叶结点存储一个聚类,用中心和半径表示,顺序处理每一个对象,并把它划分到距离最近的结点,该算法也可以作为其他聚类算法的预处理过程
BUBBLE:
BUBBLE算法则把BIRCH算法的中心和半径概念推广到普通的距离空间
BUBBLE-FM:
BUBBLE-FM算法通过减少距离的计算次数,提高了BUBBLE算法的效率
基于划分聚类算法(partitionclustering)
k-means:
是一种典型的划分聚类算法,它用一个聚类的中心来代表一个簇,即在迭代过程中选择的聚点不一定是聚类中的一个点,该算法只能处理数值型数据
k-modes:
K-Means算法的扩展,采用简单匹配方法来度量分类型数据的相似度
k-prototypes:
结合了K-Means和K-Modes两种算法,能够处理混合型数据
k-medoids:
在迭代过程中选择簇中的某点作为聚点,PAM是典型的k-medoids算法
CLARA:
CLARA算法在PAM的基础上采用了抽样技术,能够处理大规模数据
CLARANS:
CLARANS算法融合了PAM和CLARA两者的优点,是第一个用于空间数据库的聚类算法
FocusedCLARAN:
采用了空间索引技术提高了CLARANS算法的效率
PCM:
模糊集合理论引入聚类分析中并提出了PCM模糊聚类算法
基于密度聚类算法:
DBSCAN:
DBSCAN算法是一种典型的基于密度的聚类算法,该算法采用空间索引技术来搜索对象的邻域,引入了“核心对象”和“密度可达”等概念,从核心对象出发,把所有密度可达的对象组成一个簇
GDBSCAN:
算法通过泛化DBSCAN算法中邻域的概念,以适应空间对象的特点
DBLASD:
OPTICS:
OPTICS算法结合了聚类的自动性和交互性,先生成聚类的次序,可以对不同的聚类设置不同的参数,来得到用户满意的结果
FDC:
FDC算法通过构造k-dtree把整个数据空间划分成若干个矩形空间,当空间维数较少时可以大大提高DBSCAN的效率
基于网格的聚类算法:
STING:
利用网格单元保存数据统计信息,从而实现多分辨率的聚类
WaveCluster:
在聚类分析中引入了小波变换的原理,主要应用于信号处理领域。
(备注:
小波算法在信号处理,图形图像,加密解密等领域有重要应用,是一种比较高深和牛逼的东西)
CLIQUE:
是一种结合了网格和密度的聚类算法
OPTIGRID:
K-Means算法
KMeans算法的基本思想是初始随机给定K个簇中心,按照最邻近原则把待分类样本点分到各个簇。
然后按平均法重新计算各个簇的质心,从而确定新的簇心。
一直迭代,直到簇心的移动距离小于某个给定的值。
在聚类问题中,给我们的训练样本是
,每个
K-means算法是将样本聚类成k个簇(cluster),具体算法描述如下:
(1)第一步是为待聚类的点寻找聚类中心
(2)第二步是计算每个点到聚类中心的距离,将每个点聚类到离该点最近的聚类中去,对于每一个样例i,计算其应该属于的类
(3)第三步是计算每个聚类中所有点的坐标平均值,并将这个平均值作为新的聚类中心对于每一个类j,重新计算该类的质心,
反复执行
(2)、(3),直到聚类中心不再进行大范围移动或者聚类次数达到要求为止.
K是我们事先给定的聚类数,
代表样例i与k个类中距离最近的那个类,
的值是1到k中的一个。
质心
代表我们对属于同一个类的样本中心点的猜测,拿星团模型来解释就是要将所有的星星聚成k个星团,首先随机选取k个宇宙中的点(或者k个星星)作为k个星团的质心,然后第一步对于每一个星星计算其到k个质心中每一个的距离,然后选取距离最近的那个星团作为
,这样经过第一步每一个星星都有了所属的星团;第二步对于每一个星团,重新计算它的质心
(对里面所有的星星坐标求平均)。
重复迭代第一步和第二步直到质心不变或者变化很小。
下图展示了对n个样本点进行K-means聚类的效果,这里k取2:
(a)未聚类的初始点集
(b)随机选取两个点作为聚类中心
(c)计算每个点到聚类中心的距离,并聚类到离该点最近的聚类中去
(d)计算每个聚类中所有点的坐标平均值,并将这个平均值作为新的聚类中心
(e)重复(c),计算每个点到聚类中心的距离,并聚类到离该点最近的聚类中去
(f)重复(d),计算每个聚类中所有点的坐标平均值,并将这个平均z值作为新的聚类中心
聚类结果
K均值聚类存在的问题
K-means算法的特点——采用两阶段反复循环过程算法,结束的条件是不再有数据元素被重新分配:
指定聚类
即指定数据到某一个聚类,使得它与这个聚类中心的距离比它到其它聚类中心的距离要近。
修改聚类中心
优点:
本算法确定的K个划分到达平方误差最小。
当聚类是密集的,且类与类之间区别明显时,效果较好。
对于处理大数据集,这个算法是相对可伸缩和高效的,计算的复杂度为O(NKt),其中N是数据对象的数目,t是迭代的次数。
一般来说,K< 算法缺点 k-means算法缺点 ①在K-means算法中K是事先给定的,这个K值的选定是非常难以估计的。 很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适。 这也是K-means算法的一个不足。 ②在K-means算法中,首先需要根据初始聚类中心来确定一个初始划分,然后对初始划分进行优化。 这个初始聚类中心的选择对聚类结果有较大的影响,一旦初始值选择的不好,可能无法得到有效的聚类结果,这也成为K-means算法的一个主要问题。 ③从K-means算法框架可以看出,该算法需要不断地进行样本分类调整,不断地计算调整后的新的聚类中心,因此当数据量非常大时,算法的时间开销是非常大的。 所以需要对算法的时间复杂度进行分析、改进,提高算法应用范围。 ④K-means算法对噪声数据敏感。 如: 类簇C1中已经包含点A(1,1)、B(2,2)、C(1,2)、D(2,1),假设N(100,100)为异常点,当它纳入类簇C1时,计算质心Centroid((1+2+1+2+100)/5,(1+2+2+1+100)/5)=centroid(21,21),此时可能造成了类簇C1质点的偏移,在下一轮迭代重新划分样本点的时候,将大量不属于类簇C1的样本点纳入,因此得到不准确的聚类结果。 K-medoids算法在类中选取中心点而不是求类所有点的均值,某种程度上解决了噪声敏感问题。 K-means算法2个核心问题: 1.度量记录之间的相关性的计算公式,一般采用欧式距离 2.更新簇内质心的方法,采用平均值法,即means; K-modes算法是按照k-means算法的核心内容进行修改,针对分类属性的的1.度量。 2.更新质心的问题而改进。 具体如下 1.度量记录之间的相关性D的计算公式是比较两记录之间,属性相同为0,不同为1.并所有相加。 因此D越大,即他的不相关程度越强(与欧式距离代表的意义是一样的); 2.更新modes,使用一个簇的每个属性出现频率最大的那个属性值作为代表簇的属性值(如{[a,b][a,c][c,b][b,c]})代表模式为[a,b]或者[a,c]; 4介绍k-prototypes算法 k-modes算法可以处理分类数据、高维数据、大数据集,再加上用图的深度搜索方法求初始簇数、基于频率模式更新簇中心向量值、用相异度平均值求阈值t,可以说是很有效的聚簇分类数据方法。 但在实际应用中非常容易见到的数据类型是这样的: 它的数据对象属性是既有数值数据描述的,又有分类数据描述的混合情况。 对于这个问题,k-prototypes算法是结合了k-means算法和k-modes算法来解决的,用数学公式表示其相异度测量方法如下。 两个混合型的对象X和Y,它们的属性描述是A1r,A2r,…,Apr,Ap+1c,…,Amc,前p个属性是数值数据,后m – p个属性是分类数据,这样的两个数据对象X和Y的相异度是: d (X,Y )= +γ , 其中,第1部分是欧几里德距离测量数值属性,第2部分是简单匹配相异度测量处理分类属性,γ 是权值,用来衡量数值属性和分类属性在聚簇测量中所占权重。 每个簇的模式Q的前p个属性是数值型的,就用每个属性i在簇中的平均值作为Q的属性qi的值,后m–p个属性用相对频率最大的一个作为属性值。 对这种混合型数据对象的相异度测量,k-prototypes算法结合了k-means算法和k-modes算法的技术。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 总结
![提示](https://static.bdocx.com/images/bang_tan.gif)