谱聚类算法(Spectral Clustering)原理分析
SpectralClustering(谱聚类

SpectralClustering(谱聚类Spectral ClusteringSpectral Clustering(谱聚类)是一种基于图论的聚类方法,它能够识别任意形状的样本空间且收敛于全局最有解,其基本思想是利用样本数据的相似矩阵进行特征分解后得到的特征向量进行聚类,可见,它与样本feature无关而只与样本个数有关。
一、图的划分图划分的目的是将有权无向图划分为两个或以上子图,使得子图规模差不多而割边权重之和最小。
图的划分可以看做是有约束的最优化问题,它的目的是看怎么把每个点划分到某个子图中,比较不幸的是当你选择各种目标函数后发现该优化问题往往是NP-hard的。
怎么解决这个问题呢?松弛方法往往是一种利器(比如SVM中的松弛变量),对于图的划分可以认为能够将某个点的一部分划分在子图1中,另一部分划分在子图2中,而不是非此即彼,使用松弛方法的目的是将组合优化问题转化为数值优化问题,从而可以在多项式时间内解决之,最后在还原划分时可以通过阈值来还原,或者使用类似K-Means这样的方法,之后会有相关说明。
二、相关定义1、用表示无向图,其中和分别为其顶点集和边集;2、说某条边属于某个子图是指该边的两个顶点都包含在子图中;3、假设边的两个不同端点为和,则该边的权重用表示,对于无向无环图有且,为方便以下的“图”都指无向无环图;4、对于图的某种划分方案的定义为:所有两端点不在同一子图中的边的权重之和,它可以被看成该划分方案的损失函数,希望这种损失越小越好,本文以二分无向图为例,假设原无向图被划分为和,那么有:三、Laplacian矩阵假设无向图被划分为和两个子图,该图的顶点数为:,用表示维指示向量,表明该划分方案,每个分量定义如下:于是有:又因为:其中,为对角矩阵,对角线元素为:为权重矩阵:且。
重新定义一个对称矩阵,它便是Laplacian矩阵:矩阵元素为:进一步观察:如果所有权重值都为非负,那么就有,这说明Laplacian矩阵是半正定矩阵;而当无向图为连通图时有特征值0且对应特征向量为,这反映了,如果将无向图划分成两个子图,一个为其本身,另一个为空时,为0(当然,这种划分是没有意义的)。
谱聚类算法评估

谱聚类算法评估
谱聚类(Spectral Clustering)算法是一种基于图论和矩阵计算的聚类算法,不仅可以用于聚类分析,还可以用于图像分割、模式识别等领域。
其基本思想是将数据样本间的相似性转化成图论问题,再将其转化为代数问题来实现聚类。
聚类算法评估指标主要包括准确率、召回率、F值等。
其中准确率是指分类正确的样本数占样本总数的比例,召回率是指分类正确的样本数占该类别总数的比例,F值是综合了准确率和召回率的度量标准,它是准确率和召回率的加权调和平均数。
在谱聚类算法中,由于数据通常是经过降维处理的,因此需要通过调整降维参数来获得最佳的聚类效果。
在调整参数时,需要同时考虑聚类效果和算法的计算复杂度等因素。
在实际应用中,除了考虑聚类算法的性能指标,还需要考虑算法的效率、可扩展性和稳定性等因素。
算法的效率指算法在数据量很大时能否保证较快的运行速度;可扩展性指算法能否处理大规模的数据样本;稳定性指算法在处理数据时是否稳定、可靠。
因此,算法的效率、可扩展性和稳定性等因素也是评估谱聚类算法的重要指标。
在实际应用中,如何选择适当的谱聚类算法和参数调节,需要结合数据的特点和实际应用需求综合考虑,选择最佳的算法和参数,以达到较好的聚类效果和算法时间复杂度的平衡。
总之,谱聚类算法的评估需要综合考虑聚类算法的性能、效率、可扩展性和稳定性等因素,通过调整参数、选择合适的算法来达到最佳的聚类效果和算法时间复杂度的平衡。
谱聚类方法

谱聚类方法一、谱聚类的基本原理谱聚类(Spectral Clustering)是一种基于图论的聚类方法,通过研究样本数据的图形结构来进行聚类。
谱聚类方法的基本原理是将高维数据转换为低维数据,然后在低维空间中进行聚类。
它利用样本之间的相似性或距离信息,构建一个图模型(通常是相似度图或距离图),然后对图模型进行谱分解,得到一系列特征向量,最后在特征向量空间中进行聚类。
谱聚类的核心步骤是构建图模型和进行谱分解。
在构建图模型时,通常采用相似度矩阵或距离矩阵来表示样本之间的联系。
在谱分解时,通过对图模型的拉普拉斯矩阵进行特征分解,得到一系列特征向量,这些特征向量表示了样本数据的低维空间结构。
通过对特征向量空间进行聚类,可以将高维数据分为若干个类别。
二、谱聚类的优缺点1.优点(1)适用于高维数据:谱聚类方法能够有效地处理高维数据,因为它的核心步骤是将高维数据转换为低维数据,然后在低维空间中进行聚类。
这有助于克服高维数据带来的挑战。
(2)对噪声和异常值具有较强的鲁棒性:谱聚类方法在构建图模型时,会考虑到样本之间的相似性和距离信息,从而在一定程度上抑制了噪声和异常值的影响。
(3)适用于任意形状的聚类:谱聚类方法可以适用于任意形状的聚类,因为它的聚类结果是基于特征向量空间的,而特征向量空间可以捕捉到样本数据的全局结构。
2.缺点(1)计算复杂度高:谱聚类的计算复杂度相对较高。
构建图模型和进行谱分解都需要大量的计算。
在大规模数据集上,谱聚类的计算效率可能会成为问题。
(2)对相似度矩阵或距离矩阵的敏感性:谱聚类的结果会受到相似度矩阵或距离矩阵的影响。
如果相似度矩阵或距离矩阵不合理或不准确,可能会导致聚类结果不理想。
(3)对参数的敏感性:谱聚类的结果会受到参数的影响,如相似度度量方式、距离度量方式、图模型的构建方式等。
如果参数选择不当,可能会导致聚类效果不佳。
三、谱聚类的应用场景1.图像分割:谱聚类方法可以应用于图像分割,将图像中的像素点分为若干个类别,从而实现对图像的分割。
谱聚类(Spectralclustering)(2):NCut

谱聚类(Spectralclustering)(2):NCut作者:桂。
时间:2017-04-13 21:19:41声明:欢迎被转载,不过记得注明出处哦~前⾔本⽂为谱聚类的第⼆篇,主要梳理NCut算法,关于谱聚类的更多细节信息,可以参考之前的博⽂: 1) 2)内容主要参考,更多细节可以参考该作者博⽂,本⽂最后给出代码实现,全⽂包括: 1)NCut原理 2)NCut算法实现⼀、NCut原理 Ncut切图和RatioCut切图很类似,但是把Ratiocut的分母|Ai|换成vol(A_i),由于⼦图样本的个数多并不⼀定权重就⼤,我们切图时基于权重也更合我们的⽬标,因此⼀般来说Ncut切图优于RatioCut切图。
vol(A): = \sum\limits_{i \in A}d_i对应的,Ncut切图对指⽰向量h做了改进。
注意到RatioCut切图的指⽰向量使⽤的是\frac{1}{\sqrt{|A_j|}}标⽰样本归属,⽽Ncut切图使⽤了⼦图权重\frac{1}{\sqrt{vol(A_j)}}来标⽰指⽰向量h,定义如下:那么我们对于h_i^TLh_i有:推导⽅式和RatioCut完全⼀致。
也就是说,我们的优化⽬标仍然是但是此时我们的H^TH \neq I⽽是H^TDH = I,推导如下:也就是说,此时我们的优化⽬标最终为:这个就是泛化瑞利熵的求解问题,。
这⾥再次给出细节分析。
令H = D^{-1/2}F,则优化⽬标转化为:⾄此已经完成了NCut的理论。
画蛇添⾜⼀下吧,注意到:事实上,连拉普拉斯矩阵都懒得构造了。
⼆、NCut算法实现⾸先给出算法步骤:步骤⼀:求解邻接矩阵W和度矩阵D步骤⼆:对{D^{ - \frac{1}{2}}}W{D^{ - \frac{1}{2}}}进⾏特征值分解,并取K个最⼤特征值对应的特征向量(K为类别数⽬)步骤三:将求解的K个特征向量(并分别归⼀化),构成新的矩阵,对该矩阵进⾏Kmeans处理Kmeans得到的类别标签,就是原数据的类别标签,⾄此完成NCut聚类。
谱聚类算法——精选推荐

谱聚类算法转载⾃:1、问题描述 谱聚类(Spectral Clustering, SC)是⼀种基于图论的聚类⽅法——将带权⽆向图划分为两个或两个以上的最优⼦图(sub-Graph),使⼦图内部尽量相似,⽽⼦图间距离尽量距离较远,以达到常见的聚类的⽬的。
对于图的相关定义如下:对于⽆向图G = (V,E),V表⽰顶点集合,即样本集合,即⼀个顶点为⼀个样本;E表⽰边集合。
设样本数为n,即顶点数为n。
权重矩阵:W,为n*n的矩阵,其值w i,j为各边的权值,表⽰顶点 i,j(样本)之间的相似性。
对于任意w i,j = w j,i ,w i,i=0,即对⾓线上元素为0。
通常情况下,相似性⼩于某⼀阈值的两个顶点不相连,否则连接两顶点的边的权值为两个样本的相似性度量函数的值。
定义n*n的矩阵:D,其第 i ⾏,第 i 列的元素(对⾓线上)元素为W第 i ⾏所有元素的和,即 i 顶点与其他所有顶点的相似性之和。
将图G分割为⼦图G1,G2,所要断开的边的权重之和为损失函数:如下图给出⼀个六个样本所对应的图:此例中对应的损失函数为 w1,5 + w3,4 = 0.3。
谱聚类的⽬的就是找到⼀个较好的划分准则,将整个样本空间形成的图分成为各个⼦图(sub-Graph),⼀个⼦图即为⼀个类别。
根据分割⼦图的准则,可以将其分为不同的谱聚类(Minimum Cut、Ratio Cut and Normalized Cut等)。
讲具体算法之前,回顾⼀些线性代数有关的结论,不清楚的可以查阅相关资料:Ax = λx ,则λ为A的特征值,x为对应λ的特征向量。
对于实对称矩阵A,其特征向量正交。
即当i ≠ j时, <x i T,x j> = 0(<,>表⽰内积)。
对于正定矩阵,其所有特征值都⼤于0;对于半正定矩阵,其所有特征值都⼤于等于02、问题转化 ⾸先看看这个损失函数,对其进⾏如下变换:1、定义q i如下:当顶点 i 属于⼦图G1中时,q i = c1。
谱聚类算法

谱聚类(Spectral Clustering)是一种常用的机器学习非监督学习算法,它可以将数据集进行非均匀划分,自动检测出数据集之间的联系,形成聚类,来支持分类和聚类任务。
谱聚类算法利用图分割技术进行数据集划分,其前提是,一个具有相似关系的数据集可以被抽象成一个图结构,它由节点(node)和边(edge)组成。
这种图将相似的节点连接起来,形成相关性的网络,这就是谱聚类的基本原理。
在谱聚类算法中,我们首先需要将数据集抽象为图结构,有了图后,会根据一些度量(局部密度、连接强度、等等)将其划分为一些小子集,再根据邻域性确定子集的内部结构和边界,从而将图分成若干聚类。
谱聚类的优势在于它可以实现非均匀的聚类,可以根据数据集的特征自动聚类,它不仅可以将数据集划分成几个大的聚类,还可以自动检测出数据集之间更复杂的联系,从而形成聚类。
此外,谱聚类算法还可以处理高维数据,它能够捕捉数据集中所有数据之间的复杂关系,从而实现更好的聚类。
综上所述,谱聚类算法是一种有效的机器学习非监督学习算法,它可以自动检测出数据之间的关系,进行非均匀的聚类,为聚类和分类任务提供有力的支持,是机器学习算法领域的重要研究成果。
一种自动确定类个数的谱聚类算法

谱聚类(Spectral Clustering)是一种基于图论和矩阵特征的聚类方法。
谱聚类的主要思想是将数据集表示为一个图,通过图的拉普拉斯矩阵的特征向量进行降维,然后使用 K-means 等方法对降维后的数据进行聚类。
一般而言,用户需要提前设定聚类的个数(K值),但有一些自动确定类个数的谱聚类算法可以帮助在不知道真实聚类数的情况下进行聚类。
以下是一种常见的自动确定类个数的谱聚类算法:
1. 谱峰值检测算法(Spectral Peak Detection):
步骤:
1.构建谱图:计算数据相似性矩阵,然后构建相应的谱图。
2.计算谱聚类:计算谱图的拉普拉斯矩阵,并找到其特征向量。
3.寻找谱峰值:对特征向量进行分析,通过找到特征值的峰值或拐点来确定
类的个数。
4.K-means聚类:使用确定的类个数对数据进行 K-means 聚类。
优点和注意事项:
▪优点:
▪不需要预先设定聚类个数,通过分析特征向量的峰值自动确定。
▪对于不规则形状的聚类较为有效。
▪注意事项:
▪依赖于特征向量的峰值,对数据的分布和结构有一定的要求。
▪可能对数据中的噪声敏感。
这种自动确定类个数的谱聚类算法通过对拉普拉斯矩阵的特征向量进行分析,找到谱峰值来自适应地确定聚类个数。
这样的方法在一些情况下能够更好地适应数据的复杂结构和变化。
在实践中,根据具体的数据分布和问题特点选择合适的谱聚类算法是很重要的。
基于谱聚类的三维网格分割算法(SpectralClustering)

基于谱聚类的三维⽹格分割算法(SpectralClustering) 谱聚类(Spectral Clustering)是⼀种⼴泛使⽤的数据聚类算法,[Liu et al. 2004]基于谱聚类算法⾸次提出了⼀种三维⽹格分割⽅法。
该⽅法⾸先构建⼀个相似矩阵⽤于记录⽹格上相邻⾯⽚之间的差异性,然后计算相似矩阵的前k个特征向量,这些特征向量将⽹格⾯⽚映射到k维谱空间的单位球上,最后使⽤K-means⽅法对谱空间中的数据点进⾏聚类。
具体算法过程如下:⼀.相似矩阵 ⽹格分割以⾯⽚为基本单元,为了能使算法沿着⼏何模型的凹形区域进⾏分割,⽹格相邻⾯⽚之间的距离采⽤[Katz et al. 2003]中提到的⽅法,具体形式在“”中有所解释,距离由测地距离Geod_Dist和⾓度距离Ang_Dist两部分组成,如下所⽰: 上式中有两个重要的参数δ和η,参数δ通常取值范围为[0.01, 0.05],其⽤于控制测地距离和⾓度距离之间的权重⽐例,参数η通常取值范围为[0.1, 0.2],其使得分割边界更倾向于凹形区域。
计算完相邻⾯⽚之间的距离后,相似矩阵中对应位置的值由距离的⾼斯函数得到:其中:⼆.⽹格谱聚类 谱聚类⽅法在本质上都是类似的,都是利⽤相似矩阵的特征向量将原始空间中的数据映射到谱空间,并在谱空间中进⾏聚类。
⽹格上的谱聚类⽅法如下: 1 由上述定义计算相似矩阵W; 2 计算归⼀化矩阵N:N = D-1/2WD-1/2; 3 计算矩阵N的前k个最⼤特征向量e1, e2, … , e k,以这k个特征向量为列组成矩阵U = [e1, e2, … , e k]; 4 将矩阵U的每⼀⾏单位化后得到矩阵Ȗ; 5 提取出k个初始聚类中⼼⽤于K-means聚类,该过程先计算矩阵Q = ȖȖT,然后查找矩阵Q中的最⼩元素Q rs,那么r和s点就是两个距离最远的点,然后继续查找后续点; 6 以Ȗ的⾏向量为数据样本进⾏K-means聚类。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
谱聚类算法(Spectral Clustering)
谱聚类(Spectral Clustering, SC)是一种基于图论的聚类方法——将带权无向图划分为两个或两个以上的最优子图,使子图内部尽量相似,而子图间距离尽量距离较远,以达到常见的聚类的目的。
其中的最优是指最优目标函数不同,可以是割边最小分割——如图1的Smallest cut(如后文的Min cut),也可以是分割规模差不多且割边最小的分割——如图1的Best cut(如后文的Normalized cut)。
图1 谱聚类无向图划分——Smallest cut和Best cut 这样,谱聚类能够识别任意形状的样本空间且收敛于全局最优解,其基本思想是利用样本数据的相似矩阵(拉普拉斯矩阵)进行特征分解后得到的特征向量进行聚类。
1 理论基础
对于如下空间向量item-user matrix:
如果要将item做聚类,常常想到k-means聚类方法,复杂度为o(tknm),t为迭代次数,k为类的个数、n为item个数、m为空间向量特征数:
1 如果M足够大呢?
2 K的选取?
3 类的假设是凸球形的?
4 如果item是不同的实体呢?
5 Kmeans无可避免的局部最优收敛?
……
这些都使常见的聚类问题变得相当复杂。
1.1 图的表示
如果我们计算出item与item之间的相似度,便可以得到一个只有item的相似矩阵,进一步,将item看成了Graph(G)中Vertex(V),歌曲之间的相似度看成G中的Edge(E),这样便得到我们常见的图的概念。
对于图的表示(如图2),常用的有:
邻接矩阵:E,e ij表示v i和v i的边的权值,E为对称矩阵,对角线上元素为0,如图2-2。
Laplacian矩阵:L = D – E,其中d i (行或列元素的和),如图2-3。
图2 图的表示
1.2 特征值与L矩阵
先考虑一种最优化图像分割方法,以二分为例,将图cut为S和T两部分,等价于如下损失函数cut(S, T),如公式1所示,即最小(砍掉的边的加权和)。
假设二分成两类,S和T,用q(如公式2所示)表示分类情况,且q满足公式3的关系,用于类标识。
那么:
其中D为对角矩阵,行或列元素的和,L为拉普拉斯矩阵。
由:
有:
1、L为对称半正定矩阵,保证所有特征值都大于等于0;
2、L矩阵有唯一的0特征值,其对应的特征向量为1。
离散求解q很困难,如果将问题松弛化为连续实数值,由瑞利熵的性质知其二将你型的最小值就是L的特征值们(最小值,第二小值,......,最大值分别对应矩阵L的最小特征值,第二小特征值,......,最大特征值,且极值q相应的特征向量处取得,请参见瑞利熵(Rayleigh quotient))。
写到此,不得不对数学家们致敬,将cut(S,T),巧妙地转换成拉普拉斯矩阵特征值(向量)的问题,将离散的聚类问题,松弛为连续的特征向量,最小的系列特征向量对应着图最优的系列划分方法。
剩下的仅是将松弛化的问题再离散化,即将特征向量再划分开,便可以得到相应的类别,如将图3中的最小特征向量,按正负划分,便得类{A,B,C}和类{D,E,F,G}。
在K分类时,常将前K个特征向量,采用kmeans分类。
PS:
1、此处虽再次提到kmeans,但意义已经远非引入概念时的讨论的kmeans了,此处的kmeans,更多的是与ensemble learning相关,在此不述;
2、k与聚类个数并非要求相同,可从第4节的相关物理意义中意会;
3、在前k个特征向量中,第一列值完全相同(迭代算法计算特征向量时,值极其相近),kmeans时可以删除,同时也可以通过这一列来简易判断求解特征值(向量)方法是否正确,常常问题在于邻接矩阵不对称。
图3 图的L矩阵的特征值与特征向量
2 最优化方法
在kmeans等其它聚类方法中,很难刻划类的大小关系,局部最优解也是无法回避的漏病。
当然这与kmeans的广泛使用相斥——原理简单。
2.1 Min cut方法
如2.2节的计算方法,最优目标函数如下的图cut方法:
计算方法,可直接由计算L的最小特征值(特征向量),求解。
2.2 Nomarlized cut方法
Normarlized cut,目标是同时考虑最小化cut边和划分平衡,以免像图1中的cut出一个单独的H。
衡量子图大小的标准是:子图各个端点的Degree之和。
2.3 Ratio Cut 方法
Ratio cut的目标是同时考虑最小化cut边和划分平衡,以免像图1中的cut出一个单独的H。
最优目标函数为:
2.4 Normalized相似变换
归一化的L矩阵有:
因而L’的最小特征值与D-(1/2)E D-(1/2)的最大特征值对应。
而计算的L’相比计算L要稍具优势,在具体实用中,常以L’替代L,但是min cut和ratio cut不可以。
PS:这也是常常在人们的博客中,A说谱聚类为求最大K特征值(向量),B说谱聚类为求最小K个特征值(向量的原因)。
3 谱聚类步骤
第一步:数据准备,生成图的邻接矩阵;
第二步:归一化普拉斯矩阵;
第三步:生成最小的k个特征值和对应的特征向量;
第四步:将特征向量kmeans聚类(少量的特征向量);
4 谱聚类的物理意义
谱聚类中的矩阵:
可见不管是L、L’都与E联系特别大。
如果将E看成一个高维向量空间,也能在一定程度上反映item之间的关系。
将E直接kmeans聚类,得到的结果也能反映V的聚类特性,而谱聚类的引入L和L’是使得G的分割具有物理意义。
而且,如果E的item(即n)足够大,将难计算出它的kmeans,我们完全可以用PCA降维(仍为top的特征值与向量)。
上述对将E当成向量空间矩阵,直观地看符合我们的认知,但缺乏理论基础;而L(L’等)的引入,如第2节所述,使得计算具有理论基础,其前k个特征向量,也等价于对L(L’等)的降维。
因而聚类就是为图的划分找了理论基础,能达到降维的目的。
其中不少图出源于Mining of Massive Datasets,对于同仁们的布道授业,一并感谢。
推荐相关相关文档:Wen-Yen Chen, Yangqiu Song, Hongjie Bai, Chih-Jen Lin, Edward Y. Chang. Parallel Spectral Clustering in Distributed Systems.
推荐相关源码:https:///p/pspectralclustering/ (真心很赞)
更多扩展内容请见后续博文:谱聚类算法(Spectral Clustering)优化与扩展。