谱聚类(Spectral Clustering)算法简单易行,其聚类性能优于传统的K-means算法。谱聚类将数据的划分转化为对图的分割,是一种基于图论的聚类方法,其直观理解为根据图内点的相似度将图分为多个子图,使子图内部的点相似度最高,子图之间点的相似度最低。
记 G=(V,E) 表示一个无向加权图, V 表示所有顶点的集合V={v1,...,vn}, E 表示所有边的集合,并且任意两点vi和 vj 的边具有非负权值 wij≥0 。图的邻接矩阵为 W=(wij)i,j=1,...,n ,如果 wij=0 则表示点 vi 和 vj 之间没有连接。由于 G 为无向图,所以其邻接矩阵具有对称性,即wij=wij。图中任一点 vi 的度为 di=∑nj=1wij ,表示一个点与其他所有点的连接情况,图的度矩阵 D 为每个点的度所构成的对角矩阵D=diag{d1,...,dn}。
给定一组数据集 V={v1,...,vn} ,将其构造为相似度图的意义在于描述点对之间的局部近邻关系。此处介绍三种构造相似度图的方法。
(1)ε近邻图。如果两点之间的距离小于给定值ε,则连接两点。ε的值需要根据图中各点的距离选择,使与某一点连接的点不会太多,也不会太少。
(2) k 近邻图。如果点vj是 vi 的 k 近邻点之一,则连接两点。由于近邻点的非相互性,按此方法构造的邻接矩阵不对称,一种方法是采取“或”的方式,即如果vj是 vi 的 k 近邻点之一,或vi是 vj 的 k 近邻点之一,则连接两点;另一种方法是采取“与”的方式,如果vj是 vi 的k近邻点之一,并且 vi 是 vj 的k近邻点之一,则连接两点。
(3)全连接图。不考虑任何因素,直接将所有的点两两相连,由于图表示点之间的局部邻接特性,常用的相似性函数为 s(xi,xj)=exp(−∥xi−xj∥22σ2) 。
这里我们要讲到谱聚类中的关键内容——拉普拉斯矩阵,其定义为 L=D–W ,其中 D 和W就是上文定义的图的度矩阵和邻接矩阵。下面我们给出谱聚类中用到的拉普拉斯矩阵的一些性质。
(1)对任意的向量 f∈Rn ,有 fTLf=12∑i,j=1nwij(fi−fj)2 。
证明:(此处用到了W的对称性)
谱聚类算法源于图的分割(cut),首先将所有的样本点连接成图,然后将图分割成不同的子图,使得不同子图之间的连接权值最小。
定义两个子图之间的连接权值为 W(A,B)=∑i∈A,j∈Bwij ,记 A¯¯¯ 为 A 的补集,为了表达方便,我们记vi∈A为 i∈A 。如果将图分割为 k 个子图A1,...,Ak,那么最优分割问题可通过最小化如下表达式来实现:
首先从二聚类问题开始分析,其目标函数为最小化
fTLf=12∑i,j=1nwij(fi−fj)2=12∑i∈A,j∈A¯wij⎛⎝∣∣A¯∣∣|A|−−−√+|A|∣∣A¯∣∣−−−√⎞⎠2+12∑i∈A¯,j∈Awij⎛⎝−∣∣A¯∣∣|A|−−−√−|A|∣∣A¯∣∣−−−√⎞⎠2=12∑i∈A,j∈A¯wij⎛⎝∣∣A¯∣∣|A|+|A|∣∣A¯∣∣+2⎞⎠+12∑i∈A¯,j∈Awij⎛⎝∣∣A¯∣∣|A|+|A|∣∣A¯∣∣+2⎞⎠=12⎛⎝∑i∈A,j∈A¯wij+∑i∈A¯,j∈Awij⎞⎠⎛⎝∣∣A¯∣∣|A|+|A|∣∣A¯∣∣+2⎞⎠=cut(A,A¯)⎛⎝∣∣A¯∣∣+|A||A|+|A|+∣∣A¯∣∣∣∣A¯∣∣⎞⎠=|V|cut(A,A¯)⎛⎝1|A|+1∣∣A¯∣∣⎞⎠=|V|RatioCut(A,A¯)
其中, |V| 表示所有点的个数,给定样本点后, |V| 是个常数。
因为,求解RatioCut问题可以转变为最小化 fTLf 的问题,其中 f 的取值如上面所定义,然而,该离散优化问题是NP-hard,因此,我们将其进行松弛,使fi能够取任意实数。同时,为了和原问题尽量保持一致,我们加入 f 的两个约束,f⊥1→和 ∥f∥=n−−√ ,这两个约束可从 f 的定义得到。最后,二聚类问题就转化成了有约束的优化问题:
由该定义可知, H 的列相互正交,即HTH=I。类似上面的推导(此处不再给出详细过程):
类似于RatioCut,下面我们简要给出Normalized Cut的实现过程。
首先分析二聚类的情况,定义示性函数如下:
针对以上两种图分割方法,谱聚类算法的步骤如下:
Step1:将每个样本看做图的顶点,构造无向加权图;
Step2:计算图的邻接矩阵W和拉普拉斯矩阵L;
Step3:根据图的分割准则计算拉普拉斯矩阵的前k个特征向量;
Step4:将拉普拉斯矩阵的前k个特征向量构成矩阵Y,把Y的每一行看做一个样本,然后用k-means方法对Y进行聚类。
谱聚类相当于先进行非线性降维,使原始数据点能够线性可分,最后再使用k-means聚类就可以得到比较好的聚类效果。
谱聚类算法也存在以下几点不足:
(1) 谱聚类的松弛条件是对原问题的一个近似,但是并不能保证该近似是合适的,其误差有可能非常大,而且导致聚类问题不稳定;
(2) 构造相似度矩阵的尺度参数根据经验设定,尺度参数的选择对聚类效果影响较大;
(3) 同其他聚类方法一样,聚类数目的选择难以确定;
(4) 根据图最小分割的目标函数可知,谱聚类适用于均衡分类问题,即各簇之间点的个数相差不大,对于簇之间点个数相差悬殊的聚类问题,谱聚类则不适用。
以下一组图均为采用谱聚类方法进行聚类的结果,左侧一列的数据点个数分布比较均衡,聚类效果比较好,可以看出,右侧一列数据点的分布不均衡,谱聚类算法仍然将数据分成几个均衡的簇,而不能体现数据的分布结构。