Spectral谱聚类

谱聚类

聚类问题可以分为两种思路:

  1. Compactness,这类有 K-means,GMM 等,但是这类算法只能处理凸集,为了处理非凸的样本集,必须引入核技巧。
  2. Connectivity,这类以谱聚类为代表。

谱聚类是一种基于无向带权图的聚类方法。这个图用 G = ( V , E ) G=(V,E) G=(V,E) 表示,其中 V = { 1 , 2 , ⋯   , N } V=\{1,2,\cdots,N\} V={1,2,,N} E = { w i j } E=\{w_{ij}\} E={wij},这里 w i j w_{ij} wij 就是边的权重,这里权重取为相似度, W = ( w i j ) W=(w_{ij}) W=(wij) 是相似度矩阵,定义相似度(径向核):
w i j = k ( x i , x j ) = exp ⁡ ( − ∣ ∣ x i − x j ∣ ∣ 2 2 2 σ 2 ) , ( i , j ) ∈ E w i j = 0 , ( i , j ) ∉ E w_{ij}=k(x_i,x_j)=\exp(-\frac{||x_i-x_j||_2^2}{2\sigma^2}),(i,j)\in E\\ w_{ij}=0,(i,j)\notin E wij=k(xi,xj)=exp(2σ2xixj22),(i,j)Ewij=0,(i,j)/E
下面定义图的分割,这种分割就相当于聚类的结果。定义 w ( A , B ) w(A,B) w(A,B)
A ⊂ V , B ⊂ V , A ∩ B = ∅ , w ( A , B ) = ∑ i ∈ A , j ∈ B w i j A\sub V,B\sub V,A\cap B=\emptyset,w(A,B)=\sum\limits_{i\in A,j\in B}w_{ij} AV,BV,AB=,w(A,B)=iA,jBwij
假设一共有 K K K 个类别,对这个图的分割 C U T ( V ) = C U T ( A 1 , A 2 , ⋯   , A K ) = ∑ k = 1 K w ( A k , A k ‾ ) = ∑ k = 1 K [ w ( A k , V ) − w ( A k , A k ) ] CUT(V)=CUT(A_1,A_2,\cdots,A_K)=\sum\limits_{k=1}^Kw(A_k,\overline{A_k})=\sum\limits_{k=1}^K[w(A_k,V)-w(A_k,A_k)] CUT(V)=CUT(A1,A2,,AK)=k=1Kw(Ak,Ak)=k=1K[w(Ak,V)w(Ak,Ak)]

于是,我们的目标就是 min ⁡ A k C U T ( V ) \min\limits_{A_k}CUT(V) AkminCUT(V)

为了平衡每一类内部的权重不同,我们做归一化的操作,定义每一个集合的度,首先,对单个节点的度定义:
d i = ∑ j = 1 N w i j d_i=\sum\limits_{j=1}^Nw_{ij} di=j=1Nwij
其次,每个集合:
Δ k = d e g r e e ( A k ) = ∑ i ∈ A k d i \Delta_k=degree(A_k)=\sum\limits_{i\in A_k}d_i Δk=degree(Ak)=iAkdi
于是:
N ( C U T ) = ∑ k = 1 K w ( A k , A k ‾ ) ∑ i ∈ A k d i N(CUT)=\sum\limits_{k=1}^K\frac{w(A_k,\overline{A_k})}{\sum\limits_{i\in A_k}d_i} N(CUT)=k=1KiAkdiw(Ak,Ak)
所以目标函数就是最小化这个式子。

谱聚类的模型就是:
{ A ^ k } k = 1 K = a r g m i n A k N ( C U T ) \{\hat{A}_k\}_{k=1}^K=\mathop{argmin}_{A_k}N(CUT) {A^k}k=1K=argminAkN(CUT)
引入指示向量:
KaTeX parse error: No such environment: align at position 16: \left\{ \begin{̲a̲l̲i̲g̲n̲}̲y_i\in \{0,1\}^…
其中, y i j y_{ij} yij 表示第 i i i 个样本属于 j j j 个类别,记: Y = ( y 1 , y 2 , ⋯   , y N ) T Y=(y_1,y_2,\cdots,y_N)^T Y=(y1,y2,,yN)T。所以:
Y ^ = a r g m i n Y N ( C U T ) \hat{Y}=\mathop{argmin}_YN(CUT) Y^=argminYN(CUT)
N ( C U T ) N(CUT) N(CUT) 写成对角矩阵的形式,于是:
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲N(CUT)&=Trace[d…
我们已经知道 Y , w Y,w Y,w 这两个矩阵,我们希望求得 O , P O,P O,P

由于:
Y T Y = ∑ i = 1 N y i y i T Y^TY=\sum\limits_{i=1}^Ny_iy_i^T YTY=i=1NyiyiT
对于 y i y i T y_iy_i^T yiyiT,只在对角线上的 k × k k\times k k×k 处为 1,所以:
Y T Y = d i a g ( N 1 , N 2 , ⋯   , N K ) Y^TY=diag(N_1,N_2,\cdots,N_K) YTY=diag(N1,N2,,NK)
其中, N i N_i Ni 表示有 N i N_i Ni 个样本属于 i i i,即 N k = ∑ k ∈ A k 1 N_k=\sum\limits_{k\in A_k}1 Nk=kAk1

引入对角矩阵,根据 d i d_i di 的定义, D = d i a g ( d 1 , d 2 , ⋯   , d N ) = d i a g ( w N N I N 1 ) D=diag(d_1,d_2,\cdots,d_N)=diag(w_{NN}\mathbb{I}_{N1}) D=diag(d1,d2,,dN)=diag(wNNIN1),于是:
P = Y T D Y P=Y^TDY P=YTDY
对另一项 O = d i a g ( w ( A 1 , A 1 ‾ ) , w ( A 2 , A 2 ‾ ) , ⋯   , w ( A K , A K ‾ ) O=diag(w(A_1,\overline{A_1}),w(A_2,\overline{A_2}),\cdots,w(A_K,\overline{A_K}) O=diag(w(A1,A1),w(A2,A2),,w(AK,AK)
O = d i a g ( w ( A i , V ) ) − d i a g ( w ( A i , A i ) ) = d i a g ( ∑ j ∈ A i d j ) − d i a g ( w ( A i , A i ) ) O=diag(w(A_i,V))-diag(w(A_i,A_i))=diag(\sum\limits_{j\in A_i}d_j)-diag(w(A_i,A_i)) O=diag(w(Ai,V))diag(w(Ai,Ai))=diag(jAidj)diag(w(Ai,Ai))
其中,第一项已知,第二项可以写成 Y T w Y Y^TwY YTwY,这是由于:
Y T w Y = ∑ i = 1 N ∑ j = 1 N y i y j T w i j Y^TwY=\sum\limits_{i=1}^N\sum\limits_{j=1}^Ny_iy_j^Tw_{ij} YTwY=i=1Nj=1NyiyjTwij
于是这个矩阵的第 l m lm lm 项可以写为:
∑ i ∈ A l , j ∈ A m w i j \sum\limits_{i\in A_l,j\in A_m}w_{ij} iAl,jAmwij
这个矩阵的对角线上的项和 w ( A i , A i ) w(A_i,A_i) w(Ai,Ai) 相同,所以取迹后的取值不会变化。

所以:
N ( C U T ) = T r a c e [ ( Y T ( D − w ) ) Y ) ⋅ ( Y T D Y ) − 1 ] N(CUT)=Trace[(Y^T(D-w))Y)\cdot(Y^TDY)^{-1}] N(CUT)=Trace[(YT(Dw))Y)(YTDY)1]
其中,   L = D − w  L=D-w  L=Dw 叫做拉普拉斯矩阵。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值