Skip to content

谱聚类

Spectral Clustering

谱聚类是一种基于图论和线性代数的聚类方法,利用数据点之间的相似性来进行聚类。对比 k-means 算法,谱聚类对数据分布的适应性更强,能够有效地处理非凸形状的数据集,同时聚类的计算量也小很多。

定义

对于图 G=(V,E),其中 V=v1,v2,,vn 为点的集合,E={wij} 为边的集合,wij 为边的权重

在谱聚类中,相似度矩阵的构建方法直接影响最终聚类效果,常见的三种策略如下:

  • 全连接法
  • ε-近邻法
  • k-近邻法

一般采用全连接法,即所有点对计算相似度,这个时候图 G 的邻接矩阵 W 与相似度矩阵 S 相同。

wij=sij=exp(xixj222σ2)W=S=(w11w1nwn1wnn)

对于图中的每一个点 vi,定义它的度 di 为和它相连的所有边的权重之和:

di=j=1nwij

可以得到一个 n×n 的度矩阵 D,它是一个对角矩阵,对应第 i 行的第 i 个点的度数:

D=(d1d2dn)

假设聚类的目标为 K 个,对图进行分割:

Cut(V)=Cut(A1,A2,,AK)=12k=1KW(AK,AK)

我们的目标就是求解:minAKCut(V)

但这种容易出现问题:选择一个权重最小的边缘点进行分割就可以最小化目标,但我们希望的是 A1,A2,,AK 都相对来说比较“大”。

两个常用的解决方法为:

  • RatioCut
RatioCut(V)=12k=1KW(Ak,Ak)|Ak|

|Ak|表示 A 中包含顶点的数目

  • NCut
NCut(V)=12k=1KW(Ak,Ak)iAkdi

RatioCut 直接用子集元素个数来衡量集合大小,而 NCut 则用了子集内所有元素的度来衡量大小。

拉普拉斯矩阵

拉普拉斯矩阵 (Laplacian Matrix) ,也称为基尔霍夫矩阵,是图的一种矩阵表示形式,对于图 G 其定义为:

L=DW

其标准化形式为:

L=D12(DW)D12

对于任意的向量 f,有:

fLf=12i,jnwij(fifj)2

RatioCut 求解

引入 A1,A2,,AK 的指示向量 hj{h1,h2,,hK}vi 表示其中的第 n 个样本,定义:

hij={0viAj1|Aj|viAj

所有 hj 组成矩阵 H=[h1,h2,,hK]Rn×K

有:

HH=IK

对于 hj

hjLhj=12m=1nn=1nwmn(hmjhnj)2=12(mAj,nAjwmn(1|Aj|0)2+mAj,nAjwmn(01|Aj|)2)=Cut(Ak,Ak)|Aj|

例子

顶点集 Aj={v1,v2}|Aj|=2

边权重 w13=w23=1,其余为 0

计算:

Cut(Aj,Aj)=w13+w23=2hj=[12,12,0]

有:

RatioCut(A1,A2,,AK)=j=1KhjLhj=Tr(HLH)

矩阵的迹

矩阵的迹表示的是特征值的和

Tr(A)=i=1naii=a11+a22++ann

则我们的优化目标为:

argminHTr(HLH) s.t. HH=IK

这是一个NP-hard问题

argmin

argmin 函数用于找到使某个函数取得最小值的自变量(参数)

如对于函数 f(x)=x24x+4argmin(x)=2

参考论文A short theory of the Rayleigh-Ritz method 引入瑞利商极小化

我们的目标等价于找到 L 的前 K 个最小瑞利商,即最小特征值对应的特征向量:

Tr(HLH)=j=1KhjLhj=j=1KR(L,hj)

选择 L 的前 K 个最小特征值对应的特征向量组成 H

H=[u1,u2,,uK]

其中 Luj=λjuj,且 λ1λ2λK

最后,对 H 的行向量进行k-means聚类,得到最终划分。

NCut 求解

类似的,有:

hij={0viAj1iAkdiviAj

有:

HDH=IK

对于 hj

hjLhj=12m=1nn=1nwmn(hmjhnj)2=Cut(Ak,Ak)iAkdi

优化目标为:

argminHTr(HLH) s.t. HDH=IK

令:

U=D12H

则原问题转换为:

argminUTr(UD12LD12U) s.t. UU=IK

求出 D12LD12 的最小的前 K 个特征值对应的特征向量,标准化后组成特征矩阵 U,进行一次k-means聚类即可。