谱聚类算法讲解
- 格式:pptx
- 大小:723.12 KB
- 文档页数:43


1. 谱聚类给你博客园上若干个博客,让你将它们分成K类,你会怎样做?想必有很多方法,本文要介绍的是其中的一种——谱聚类。
聚类的直观解释是根据样本间相似度,将它们分成不同组。
谱聚类的思想是将样本看作顶点,样本间的相似度看作带权的边,从而将聚类问题转为图分割问题:找到一种图分割的方法使得连接不同组的边的权重尽可能低(这意味着组间相似度要尽可能低),组内的边的权重尽可能高(这意味着组内相似度要尽可能高)。
将上面的例子代入就是将每一个博客当作图上的一个顶点,然后根据相似度将这些顶点连起来,最后进行分割。
分割后还连在一起的顶点就是同一类了。
更具体的例子如下图所示:在上图中,一共有6个顶点(博客),顶点之间的连线表示两个顶点的相似度,现在要将这图分成两半(两个类),要怎样分割(去掉哪边条)?根据谱聚类的思想,应该去掉的边是用虚线表示的那条。
最后,剩下的两半就分别对应两个类了。
根据这个思想,可以得到unnormalized谱聚类和normalized谱聚类,由于前者比后者简单,所以本文介绍unnormalized谱聚类的几个步骤(假设要分K个类):(a)建立similarity graph,并用W 表示similarity graph的带权邻接矩阵(b)计算unnormalized graph Laplacian matrix L(L = D - W, 其中D是degree matrix)(c)计算L的前K个最小的特征向量(d)把这k个特征向量排列在一起组成一个N*k的矩阵,将其中每一行看作k维空间中的一个向量,并使用K-means 算法进行聚类2. 算法原理解析这一节主要从大体上解释unnormalized谱聚类的四个步骤是怎么来的,不涉及具体的公式推导。
(a)谱聚类的思想就是要转化为图分割问题。
因此,第一步就是将原问题转化为图。
转为图有两个问题要解决:一是两个顶点的边要怎样定义;二是要保留哪些边。
对于第一个问题,如果两个点在一定程度上相似,就在两个点之间添加一条边。
谱聚类详细介绍谱聚类是一种挺有趣的聚类方法呢。
咱们先说说聚类是啥吧。
就好比你有一堆各种各样的小物件,像珠子啊、小石子啊、小木块啥的,你想把它们按照某些相似的特点分成不同的堆儿,这就是聚类的一个很形象的类比啦。
比如说,把圆形的珠子放一堆,方形的小木块放一堆,不规则的小石子再放一堆。
那谱聚类呢,它不像一些简单的聚类方法只看距离之类的直观东西。
它是从一个更高层次的角度来看待数据的关系。
你可以把数据想象成一个大的社交网络里的人,每个人都和其他人有着千丝万缕的联系。
谱聚类就像是要在这个复杂的社交网络里找到那些联系特别紧密的小团体。
谱聚类的核心是构建一个相似性矩阵。
这就好比给这个社交网络里的每个人都画一个关系图,谁和谁关系好,关系有多好,都在这个矩阵里体现出来。
如果两个人很相似,那在这个矩阵里对应的数值就比较大,如果不太相似,数值就小。
这就像在现实生活里,两个人要是好朋友,关系亲密度就高,如果是陌生人,那亲密度就低呗。
然后呢,从这个相似性矩阵出发,谱聚类会进行一系列复杂的数学运算,像是计算拉普拉斯矩阵之类的。
这就像是在分析这个社交网络的结构特点。
你想啊,在一个社交网络里,有些小团体内部的联系超级紧密,但是和其他小团体的联系就比较松散。
谱聚类就是要找到这些内部联系紧密,外部联系松散的小团体。
这拉普拉斯矩阵就像是一个工具,能帮助我们挖掘出这些隐藏的结构信息。
在谱聚类的过程中,它还会对数据进行一种特殊的变换,把数据映射到一个新的空间里。
这就像是给这些社交网络里的人换了一个新的环境,在这个新环境里,那些原本就相似的人会更加紧密地聚集在一起,而不相似的人就离得远远的。
这多神奇呀?就好像把一群混杂在一起的小动物,通过一种魔法,让同类的小动物自动地靠在一起,不同类的就分开了。
谱聚类有很多优点呢。
它对于那些形状不规则的数据分布特别有效。
比如说,普通的聚类方法可能对圆形或者方形的数据分布聚类效果好,但是如果数据分布像一个弯弯绕绕的曲线,或者是一些奇奇怪怪的形状,谱聚类就像一个超级英雄一样闪亮登场啦。
谱聚类算法评估
谱聚类(Spectral Clustering)算法是一种基于图论和矩阵计算的聚类算法,不仅可以用于聚类分析,还可以用于图像分割、模式识别等领域。
其基本思想是将数据样本间的相似性转化成图论问题,再将其转化为代数问题来实现聚类。
聚类算法评估指标主要包括准确率、召回率、F值等。
其中准确率是指分类正确的样本数占样本总数的比例,召回率是指分类正确的样本数占该类别总数的比例,F值是综合了准确率和召回率的度量标准,它是准确率和召回率的加权调和平均数。
在谱聚类算法中,由于数据通常是经过降维处理的,因此需要通过调整降维参数来获得最佳的聚类效果。
在调整参数时,需要同时考虑聚类效果和算法的计算复杂度等因素。
在实际应用中,除了考虑聚类算法的性能指标,还需要考虑算法的效率、可扩展性和稳定性等因素。
算法的效率指算法在数据量很大时能否保证较快的运行速度;可扩展性指算法能否处理大规模的数据样本;稳定性指算法在处理数据时是否稳定、可靠。
因此,算法的效率、可扩展性和稳定性等因素也是评估谱聚类算法的重要指标。
在实际应用中,如何选择适当的谱聚类算法和参数调节,需要结合数据的特点和实际应用需求综合考虑,选择最佳的算法和参数,以达到较好的聚类效果和算法时间复杂度的平衡。
总之,谱聚类算法的评估需要综合考虑聚类算法的性能、效率、可扩展性和稳定性等因素,通过调整参数、选择合适的算法来达到最佳的聚类效果和算法时间复杂度的平衡。