Skip to content

谱聚类 ​

Spectral Clustering ​

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

定义 ​

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

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

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

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

wij=sij=exp⁡(−‖xi−xj‖222σ2)W=S=(w11⋯w1n⋮⋮wn1⋯wnn)

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

di=∑j=1nwij

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

D=(d1……⋮d2…⋮⋮dn)

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

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

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

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

两个常用的解决方法为:

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

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

  • NCut
NCut(V)=12∑k=1KW(Ak,Ak―)∑i∈Akdi

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

拉普拉斯矩阵 ​

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

L=D−W

其标准化形式为:

L=D−12(D−W)D−12

对于任意的向量 f,有:

f⊤Lf=12∑i,jnwij(fi−fj)2

RatioCut 求解 ​

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

hij={0vi∉Aj1|Aj|vi∈Aj

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

有:

H⊤H=IK

对于 hj:

hj⊤Lhj=12∑m=1n∑n=1nwmn(hmj−hnj)2=12(∑m∈Aj,n∉Ajwmn(1|Aj|−0)2+∑m∉Aj,n∈Ajwmn(0−1|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=1Khj⊤Lhj=Tr(H⊤LH)

矩阵的迹

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

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

则我们的优化目标为:

argminHTr(H⊤LH) s.t. H⊤H=IK

这是一个NP-hard问题

argmin

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

如对于函数 f(x)=x2−4x+4,argmin(x)=2

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

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

Tr(H⊤LH)=∑j=1Khj⊤Lhj=∑j=1KR(L,hj)

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

H=[u1,u2,⋯,uK]

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

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

NCut 求解 ​

类似的,有:

hij={0vi∉Aj1∑i∈Akdivi∈Aj

有:

H⊤DH=IK

对于 hj:

hj⊤Lhj=12∑m=1n∑n=1nwmn(hmj−hnj)2=Cut(Ak,Ak―)∑i∈Akdi

优化目标为:

argminHTr(H⊤LH) s.t. H⊤DH=IK

令:

U=D12H

则原问题转换为:

argminUTr(U⊤D−12LD−12U) s.t. U⊤U=IK

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