谱聚类(Spectral Clustering, SC)是一种基于图论的聚类方法——将带权无向图划分为两个或两个以上的最优子图,使子图内部尽量相似,而子图间距离尽量距离较远,以达到常见的聚类的目的。其中的最优是指最优目标函数不同,可以是Min Cut、Nomarlized Cut、Ratio Cut等。谱聚类能够识别任意形状的样本空间且收敛于全局最优解,其基本思想是利用样本数据的相似矩阵(拉普拉斯矩阵)进行特征分解后得到的特征向量进行聚类。
Spectral Clustering 算法步骤:
1)根据数据构造一个Graph,Graph的每一个节点对应一个数据点,将相似的点连接起来,并且边的权重用于表示数据之间的相似度。把这个Graph用邻接矩阵的形式表示出来,记为 W。
2)把W的每一列元素活者行元素加起来得到N个数,把它们放在对角线上(其他地方都是零),组成一个N*N的度矩阵,记为D 。
3)根据度矩阵与邻接矩阵得出拉普拉斯矩阵 L = D - W 。
4)求出拉普拉斯矩阵L的前k个特征值(除非特殊说明,否则“前k个”指按照特征值的大小从小到大的顺序)以及对应的特征向量。
5)把这k个特征(列)向量排列在一起组成一个N*k的矩阵,将其中每一行看作k维空间中的一个向量,并使用 K-Means算法进行聚类。聚类的结果中每一行所属的类别就是原来Graph中的节点亦即最初的N个数据点分别所属的类别。
示例
Spectral Clustering 和传统的聚类方法(如 K-Means等</