谱聚类分为非归一化和归一化的,分别近似于图论中的RatioCut和NormalizedCut,表达形式如下
R a t i o C u t ( A 1 , . . . , A k ) = ∑ i = 1 k c u t ( A i , A i ‾ ) ∣ A i ∣ N c u t ( A 1 , . . . , A k ) = ∑ i = 1 k c u t ( A i , A i ‾ ) v o l ( A i ) RatioCut(A_1,...,A_k)=\sum \limits_{i=1}^k \frac {cut(A_i,\overline {A_i})}{|A_i|} \\ Ncut(A_1,...,A_k)=\sum \limits_{i=1}^k \frac{cut(A_i,\overline {A_i})}{vol(A_i)} RatioCut(A1,...,Ak)=i=1∑k∣Ai∣cut(Ai,Ai)Ncut(A1,...,Ak)=i=1∑kvol(Ai)cut(Ai,Ai)
其中 A i ‾ \overline {A_i} Ai是 A i A_i Ai的补集,对于 c u t ( A i , A i ‾ ) , ∣ A i ∣ , v o l ( A i ) cut(A_i,\overline {A_i}),|A_i|,vol(A_i) cut(Ai,Ai),∣Ai∣,vol(Ai)解释如下
对于两个子集A,B,子图 G = ( V , E ) G=(V,E) G=(V,E),使得连接A,B的边的权重( w i j w_{ij} wij)最小,权重可以自己定义,可以通过连接性,距离等
c u t ( A , B ) = ∑ i ∈ A , j ∈ B w i j cut(A,B)=\sum \limits_{i\in A,j \in B}w_{ij} cut(A,B)=i∈A,j∈B∑wij
对于k个子集,定义如下
c u t ( A 1 , . . . , A k ) = ∑ i = 1 k c u t ( A i , A i ‾ ) cut(A_1,...,A_k)=\sum \limits_{i=1}^k cut(A_i,\overline {A_i}) cut(A1,...,Ak)=i=1∑kcut(Ai,Ai)
如果仅仅使用上面的公式,可能会出现以下的问题:理论上是想在红色黑色的中间的位置切一刀,但根据上面的公式,可能会在蓝色的点的附件切一刀,因为该位置权重最小。
因此需要增加一些限制,使得切割的 A i A_i Ai不要太小,那么怎么定义 A i A_i Ai的大小呢?对于非归一化和归一化,追求的目标不同, A i A_i Ai的大小自然不同。
S i z e ( A ) : U n N o r m a l i z e d ∼ R a t i o C u t → ∣ A ∣ : A 中 顶 点 的 数 量 S i z e ( A ) : N o r m a l i z e d ∼ N C u t → v o l ( A ) = ∑ i ∈ A d i , d i = ∑ j = 1 n w i j : 点 i 的 权 重 之 和 Size(A):UnNormalized \sim RatioCut \to |A|:A中顶点的数量 \\ Size(A):Normalized \sim NCut \to vol(A)=\sum \limits_{i \in A}d_i,d_i=\sum \limits_{j=1}^n w_{ij}:点i的权重之和 Size(A):UnNormalized∼RatioCut→∣A∣:A中顶点的数量Size(A):Normalized∼NCut→vol(A)=i∈A∑di,di=j=1∑nwij:点i的权重之和
在非归一化的谱聚类中,GraphCut追求的目标是不同类之间的点不同,更倾向于一个类中的数据点是均等的;归一化的谱聚类中,GraphCut追求的目标是同一个类之间相似,更倾向于每一个类中的粒度是相等的。在实际工程项目中,多采用归一化的谱聚类,但在这里为了方便推导,采用非归一化的谱聚类进行推导。
下图中黑色的竖线表示非归一化的结果,红色的竖线表示归一化的结果
其实谱聚类需要三个矩阵,相似矩阵W,对角矩阵D,拉普拉斯矩阵L。现在对这三个矩阵进行解释。
1.Radius 领域搜索建立。 w i j = d ( v i , v j ) w_{ij}=d(v_i,v_j) wij=d(vi,vj)
2.KNN搜索。 w i j = d ( v i , v j ) w_{ij}=d(v_i,v_j) wij=d(vi,vj)
a)建立一个边,如果 v i v_i vi是 v j v_j vjKNN领域的一个邻居,或者 v j v_j vj是 v i v_i viKNN领域的一个邻居
b)建立一个边,如果 v i v_i vi是 v j v_j vjKNN领域的一个邻居,并且 v j v_j vj是 v i v_i viKNN领域的一个邻居
3.全连接图
矩阵D是一个对角矩阵, d i = ∑ j = 1 n w i j d_i=\sum \limits_{j=1}^n w_{ij} di=j=1∑nwij,表示,对角线的每一个元素都是相似矩阵W的每一行之和
非归一化拉普拉斯矩阵 L = D − W L=D-W L=D−W,归一化拉普拉斯矩阵
L s y m = D − 1 / 2 L D 1 / 2 = I − D − 1 / 2 W D − 1 / 2 L r w = D − 1 L = I − D − 1 W L_{sym}=D^{-1/2}LD^{1/2}=I-D^{-1/2}WD^{-1/2} \\ L_{rw}=D^{-1}L=I-D^{-1}W Lsym=D−1/2LD1/2=I−D−1/2WD−1/2Lrw=D−1L=I−D−1W
介绍几个关于拉普拉斯矩阵L的性质
1.对于任意的向量 f ∈ R n f \in R^n f∈Rn,都有
f T L f = 1 2 ∑ i = 1 n ∑ j = 1 n w i j ( f i − f j ) 2 f^TLf=\frac{1}{2}\sum \limits_{i=1}^n \sum \limits_{j=1}^n w_{ij}(f_i-f_j)^2 fTLf=21i=1∑nj=1∑nwij(fi−fj)2
证明:
f T L f = f T D f − f T W f = ∑ i = 1 n f i 2 d i − ∑ i = 1 n ∑ j = 1 n f i f j w i j = 1 2 ( ∑ i = 1 n f i 2 d i − 2 ∑ i = 1 n ∑ j = 1 n f i f j w i j + ∑ j = 1 n f j 2 d j ) = 1 2 ( ∑ i = 1 n ∑ j = 1 n w i j f i 2 − 2 ∑ i = 1 n ∑ j = 1 n f i f j w i j + ∑ j = 1 n ∑ i = 1 n w j i f j 2 ) = 1 2 ∑ i = 1 n ∑ j = 1 n w i j ( f i − f j ) 2 \begin{array}{l} {f^T}Lf = {f^T}Df - {f^T}Wf\\ \quad \quad \quad {\rm{ = }}\sum\limits_{i = 1}^n {{f_i}^2{d_i}} - \sum\limits_{i = 1}^n {\sum\limits_{j = 1}^n {{f_i}{f_j}{w_{ij}}} } \\ \quad \quad \quad{\rm{ = }}\frac{1}{2}(\sum\limits_{i = 1}^n {{f_i}^2{d_i}} - 2\sum\limits_{i = 1}^n {\sum\limits_{j = 1}^n {{f_i}{f_j}{w_{ij}}} } + \sum\limits_{j = 1}^n {{f_j}^2{d_j}} )\\ \quad \quad \quad{\rm{ = }}\frac{1}{2}(\sum\limits_{i = 1}^n {\sum\limits_{j = 1}^n {{w_{ij}}f_i^2} } - 2\sum\limits_{i = 1}^n {\sum\limits_{j = 1}^n {{f_i}{f_j}{w_{ij}}} } + \sum\limits_{j = 1}^n {\sum\limits_{i = 1}^n {{w_{ji}}f_j^2} } )\\ \quad \quad \quad {\rm{ = }}\frac{1}{2}\sum\limits_{i = 1}^n {\sum\limits_{j = 1}^n {{w_{ij}}{{({f_i} - {f_j})}^2}} } \end{array} fTLf=fTDf−fTWf=i=1∑nfi2di−i=1∑nj=1∑nfifjwij=21(i=1∑nfi2di−2i=1∑nj=1∑nfifjwij+j=1∑nfj2dj)=21(i=1∑nj=1∑nwijfi2−2i=1∑nj=1∑nfifjwij+j=1∑ni=1∑nwjifj2)=21i=1∑nj=1∑nwij(fi−fj)2
其中 d i = ∑ j = 1 n w i j d_i=\sum \limits_{j=1}^n w_{ij} di=j=1∑nwij
2. L L L是对称半正定的矩阵
证明:
对称性: L T = ( D − W ) T = ( D T − W T ) = ( D − W ) = L L^T=(D-W)^T=(D^T-W^T)=(D-W)=L LT=(D−W)T=(DT−WT)=(D−W)=L
半正定: f T L f = 1 2 ∑ i = 1 n ∑ j = 1 n w i j ( f i − f j ) 2 ≥ = 0 f^TLf=\frac{1}{2}\sum\limits_{i = 1}^n {\sum\limits_{j = 1}^n {{w_{ij}}{{({f_i} - {f_j})}^2}} } \ge=0 fTLf=21i=1∑nj=1∑nwij(fi−fj)2≥=0
3.L的最小特征值为0,其对应的特征向量为常数向量,方便起见,这里用 1 1 1表示。
证明:
L f = ( D − W ) f = D f − W f = [ d 1 f 1 . . . d i − f i . . . d n − f n ] − [ w 11 f 1 + . . . w 1 n f n . . . w i 1 f 1 + . . . w i n f n . . . w n 1 f 1 + . . . w n n f n ] = [ d 1 f 1 . . . d i − f i . . . d n − f n ] − [ ∑ j = 1 n w 1 j f j . . . ∑ j = 1 n w i j f j . . . ∑ j = 1 n w n j f j ] = [ . . . , d i f i − ∑ j = 1 n w i j f j , . . . ] T = 0 ∙ f Lf=(D-W)f=Df-Wf\\ =\begin{bmatrix} {{d_1}{f_1}}\\ {...}\\ {{d_i} - {f_i}}\\ {...}\\ {{d_n} - {f_n}} \end{bmatrix} - \begin{bmatrix} {{w_{11}}{f_1} + ...{w_{1n}}{f_n}}\\ {...}\\ {{w_{i1}}{f_1} + ...{w_{in}}{f_n}}\\ {...}\\ {{w_{n1}}{f_1} + ...{w_{nn}}{f_n}} \end{bmatrix} =\begin{bmatrix} {{d_1}{f_1}}\\ {...}\\ {{d_i} - {f_i}}\\ {...}\\ {{d_n} - {f_n}} \end{bmatrix} -\begin{bmatrix} {\sum\limits_{j = 1}^n {{w_{1j}}{f_j}} }\\ {...}\\ {\sum\limits_{j = 1}^n {{w_{ij}}{f_j}} }\\ {...}\\ {\sum\limits_{j = 1}^n {{w_{nj}}{f_j}} } \end{bmatrix}\\ ={\begin{bmatrix} {...,}&{{d_i}{f_i} - \sum\limits_{j = 1}^n {{w_{ij}}{f_j}} ,}&{...} \end{bmatrix}^T} = 0 \bullet f Lf=(D−W)f=Df−Wf=⎣⎢⎢⎢⎢⎡d1f1...di−fi...dn−fn⎦⎥⎥⎥⎥⎤−⎣⎢⎢⎢⎢⎡w11f1+...w1nfn...wi1f1+...winfn...wn1f1+...wnnfn⎦⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎡d1f1...di−fi...dn−fn⎦⎥⎥⎥⎥⎤−⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡j=1∑nw1jfj...j=1∑nwijfj...j=1∑nwnjfj⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤=[...,difi−j=1∑nwijfj,...]T=0∙f
上式成立的条件是当且仅当f为常量向量,此时L的特征值为0
4.L的特征值是非负的,即 0 = λ 1 ≤ λ 2 ≤ . . . ≤ λ n 0=\lambda_1 \le \lambda_2 \le... \le \lambda_n 0=λ1≤λ2≤...≤λn
证明:通过2,3显然成立
情况一:节点0与节点5不相连
左边是10个顶点的连接情况,中间是拉普拉斯矩阵L的特征值分布情况,存在两个0的特征值,右边是两个特征值0对应的特征向量。
情况二:节点0与节点5相连
当节点0与节点5相连时,相似矩阵W,拉普拉斯特征值和特征向量变化情况如下
由于连接了节点0和节点5,原来的零特征值由2个变为1个,但同时也存在一个接近0的特征值0.2984,因为加入的权重是1,试想一下,如果加入的权重比较小,那么特征值就会趋近于0,此时对应的权重就比较小,那么“这条线就是切割分类的线”。
通过以上两种可以得知,有多少个连通域,就有多少个0特征值。一个连通图的特征值至少有一个为0,即至少存在一个独立分区,就是自己本身。如果有两个特征值为0,则存在两个独立分区。并且可以通过0对应的特征向量得知这个类有多少个点属于一类,其中有一个特征向量为常量向量,这里为1,其实为2,3都可以。
对于两个不相交的子集 A , B ∈ V A,B\in V A,B∈V,那么
c u t ( A , B ) = ∑ i ∈ A , j ∈ B w i j cut(A,B)=\sum \limits_{i \in A,j\in B}{w_{ij}} cut(A,B)=i∈A,j∈B∑wij
那么对于非归一化和归一化
R a t i o C u t ( A 1 , . . . , A k ) = ∑ i = 1 k c u t ( A i , A i ‾ ) ∣ A i ∣ N c u t ( A 1 , . . . , A k ) = ∑ i = 1 k c u t ( A i , A i ‾ ) v o l ( A i ) RatioCut(A_1,...,A_k)=\sum \limits_{i=1}^k \frac {cut(A_i,\overline {A_i})}{|A_i|} \\ Ncut(A_1,...,A_k)=\sum \limits_{i=1}^k \frac{cut(A_i,\overline {A_i})}{vol(A_i)} RatioCut(A1,...,Ak)=i=1∑k∣Ai∣cut(Ai,Ai)Ncut(A1,...,Ak)=i=1∑kvol(Ai)cut(Ai,Ai)
方便起见,所有推导基于非归一化。谱聚类的问题就是最小化RatioCut函数,即
min A ⊂ V R a t i o C u t ( A , A ‾ ) = min A ⊂ V ( c u t ( A , A ‾ ) ∣ A ∣ + c u t ( A ‾ , A ) ∣ A ‾ ∣ ) \mathop {\min }\limits_{A \subset V} RatioCut(A,\overline A ) = \mathop {\min }\limits_{A \subset V} (\frac{{cut(A,\overline A )}}{{|A|}} + \frac{{cut(\overline A ,A)}}{{|\overline A |}}) A⊂VminRatioCut(A,A)=A⊂Vmin(∣A∣cut(A,A)+∣A∣cut(A,A))
给予一个子集 A ⊂ V A \subset V A⊂V,构建一个向量 f = [ f 1 , . . . , f n ] T ∈ R n f=[f_1,...,f_n]^T \in R^n f=[f1,...,fn]T∈Rn,构建如下(假设 f f f已经成功构建出来的,实际上 f f f是不知道长什么的)
f i = { ∣ A ‾ ∣ / ∣ A ∣ i f v i ∈ A ∣ A ∣ / ∣ A ‾ ∣ i f v i ∈ A ‾ {f_i} = \left\{ \begin{array}{l} \sqrt {|\overline A |/|A|} \quad \quad \quad {\rm{ if }}\quad{v_i} \in A\\ \sqrt {|A|/|\overline A |} \quad \quad \quad {\rm{ if }}\quad{v_i} \in \overline A \end{array} \right. fi=⎩⎨⎧∣A∣/∣A∣ifvi∈A∣A∣/∣A∣ifvi∈A
其实此时就可以通过 f i f_i fi的正负就可以判断 v i v_i vi是否属于A类了
{ v i ∈ A i f f i ≥ 0 v i ∈ A ‾ i f f i < 0 \left\{ \begin{array}{l} {v_i} \in A\quad\quad{\rm{ if }}\quad{f_i} \ge 0\\ {v_i} \in \overline A \quad\quad{\rm{if }}\quad{f_i} < 0 \end{array} \right. {vi∈Aiffi≥0vi∈Aiffi<0
那么
其中 ∣ V ∣ |V| ∣V∣表示原来没有切的图中还有多少个点。
另外, f f f是垂直于常量向量,且 ∣ ∣ f ∣ ∣ = n ||f||=\sqrt{n} ∣∣f∣∣=n
证明如下
f T 1 = ∑ i = 1 n f i = ∑ i ∈ A ∣ A ‾ ∣ ∣ A ∣ − ∑ i ∈ A ‾ ∣ A ∣ ∣ A ‾ ∣ = ∣ A ∣ ∣ A ‾ ∣ ∣ A ∣ − ∣ A ‾ ∣ ∣ A ∣ ∣ A ‾ ∣ = 0 ∣ ∣ f ∣ ∣ 2 = ∑ i = 1 n f i 2 = ∣ A ∣ ∣ A ‾ ∣ ∣ A ∣ + ∣ A ‾ ∣ ∣ A ∣ ∣ A ‾ ∣ = ∣ A ∣ + ∣ A ‾ ∣ = n {f^T}1 = \sum\limits_{i = 1}^n {{f_i}} = \sum\limits_{i \in A} {\sqrt {\frac{{|\overline A |}}{{|A|}}} } - \sum\limits_{i \in \overline A } {\sqrt {\frac{{|A|}}{{|\overline A |}}} } = |A|\sqrt {\frac{{|\overline A |}}{{|A|}}} - |\overline A |\sqrt {\frac{{|A|}}{{|\overline A |}}} = 0\\ ||f|{|^2} = \sum\limits_{i = 1}^n {{f_i}^2} = |A|\frac{{|\overline A |}}{{|A|}} + |\overline A |\frac{{|A|}}{{|\overline A |}} = |A| + |\overline A | = n fT1=i=1∑nfi=i∈A∑∣A∣∣A∣−i∈A∑∣A∣∣A∣=∣A∣∣A∣∣A∣−∣A∣∣A∣∣A∣=0∣∣f∣∣2=i=1∑nfi2=∣A∣∣A∣∣A∣+∣A∣∣A∣∣A∣=∣A∣+∣A∣=n
因此原先最小化图切问题转化为
min A ⊂ V f T L f , s . t . , f ⊥ 1 , ∣ ∣ f ∣ ∣ = n , f i = { ∣ A ‾ ∣ / ∣ A ∣ i f v i ∈ A ∣ A ∣ / ∣ A ‾ ∣ i f v i ∈ A ‾ \mathop {\min }\limits_{A \subset V} f^TLf,s.t.,f \bot 1,||f||=\sqrt{n},{f_i} = \left\{ \begin{array}{l} \sqrt {|\overline A |/|A|} \quad \quad \quad {\rm{ if }}\quad{v_i} \in A\\ \sqrt {|A|/|\overline A |} \quad \quad \quad {\rm{ if }}\quad{v_i} \in \overline A \end{array} \right. A⊂VminfTLf,s.t.,f⊥1,∣∣f∣∣=n,fi=⎩⎨⎧∣A∣/∣A∣ifvi∈A∣A∣/∣A∣ifvi∈A
由于 f i f_i fi是假设的,因此上式近似为
min A ⊂ V f T L f , s . t . , f ⊥ 1 , ∣ ∣ f ∣ ∣ = n \mathop {\min }\limits_{A \subset V} f^TLf,s.t.,f \bot 1,||f||=\sqrt{n} A⊂VminfTLf,s.t.,f⊥1,∣∣f∣∣=n
遇见对称矩阵 A A A,求解类似 x T A x x^TAx xTAx的最大最小值,采用Rayleigh商进行求解。由于Rayleigh商定理本身没有条件,但是对于上式存在 f ⊥ 1 , ∣ ∣ f ∣ ∣ = n f \bot 1,||f||=\sqrt{n} f⊥1,∣∣f∣∣=n限制条件,那该怎么处理呢?对于 L L L的最小特征值就是 m i n f T L f minf^TLf minfTLf的最小值,但是 f f f是有条件的,好在 L L L的最小特征值0对应的特征向量为常数,又因为常数不垂直于1,取 L L L矩阵的第二小特征值作为 f T L f f^TLf fTLf的最小值,对应的特征向量就是 f f f。
现在存在一个问题,就是怎么通过上述得到的 f f f进行分类呢,这时肯定就有人说使用
f i = { ∣ A ‾ ∣ / ∣ A ∣ i f v i ∈ A ∣ A ∣ / ∣ A ‾ ∣ i f v i ∈ A ‾ {f_i} = \left\{ \begin{array}{l} \sqrt {|\overline A |/|A|} \quad \quad \quad {\rm{ if }}\quad{v_i} \in A\\ \sqrt {|A|/|\overline A |} \quad \quad \quad {\rm{ if }}\quad{v_i} \in \overline A \end{array} \right. fi=⎩⎨⎧∣A∣/∣A∣ifvi∈A∣A∣/∣A∣ifvi∈A
通过 f i f_i fi的正负来进行判断,但是上式假设出来的。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fm5mXbsP-1635251405573)(E:\资料\三维重建课程\第四课时\图片\理想和非理想.png)]
左图是已知 f i f_i fi的分布,右图 f i f_i fi是未知的,且黄色的点是上述得到的特征向量 f 2 f_2 f2的点。那么此时需要将得到的 f 2 f_2 f2和常量向量 f 1 f_1 f1组合起来,采用KMeans方法进行分类。那么为什么需要结合 f 1 f_1 f1,只采用 f 2 f_2 f2不就可以了吗?如果只存在两个孤立的连通域,只用 f 1 f_1 f1就可以了,但是如果因为两个连通域之间有连线,只用 f 1 f_1 f1就不可以了。其实 f 1 f_1 f1表示的是连通域的信息, f 2 f_2 f2是图的构造。
对于k个分类, A 1 , . . . , A k A_1,...,A_k A1,...,Ak,那么
c u t ( A 1 , . . . , A k ) = ∑ i = 1 k c u t ( A i , A ‾ i ) cut(A_1,...,A_k)=\sum \limits_{i=1}^k{cut(A_i,\overline A_i)} cut(A1,...,Ak)=i=1∑kcut(Ai,Ai)
构造一个Indication矩阵 H ∈ R n × k H \in R^{n \times k} H∈Rn×k
h i j = { 1 / ∣ A i ∣ i f i ∈ A j 0 o t h e r w i s e {h_{ij}} = \left\{ \begin{array}{l} 1/\sqrt {|{A_i}|} \quad \quad {\rm{ if }}\quad i \in {A_j}\\ 0\quad \quad \quad \quad otherwise \end{array} \right. hij={1/∣Ai∣ifi∈Aj0otherwise
举个例子
其中 { 1 , 2 , 3 , 4 } ∈ A 1 ; 5 ∈ A 2 ; 6 ∈ A 3 \{1,2,3,4\} \in A_1;5 \in A_2;6\in A_3 {1,2,3,4}∈A1;5∈A2;6∈A3。
类比k=2的情况,我们有
h i T L h i = c u t ( ∣ A i ∣ , ∣ A i ∣ ‾ ) ∣ A i ∣ , h i T L h i = ( H T L H ) i i {h_i}^TL{h_i}=\frac{cut({|A_i|},\overline {|A_i|})}{|A_i|}, {h_i}^TL{h_i} = {({H^T}LH)_{ii}} hiTLhi=∣Ai∣cut(∣Ai∣,∣Ai∣),hiTLhi=(HTLH)ii
那么
R a t i o C u t ( A 1 , . . . , A k ) = ∑ i = 1 k c u t ( ∣ A i ∣ , ∣ A i ∣ ‾ ) ∣ A i ∣ = ∑ i = 1 k h i T L h i = ∑ i = 1 k ( H T L H ) i i = T r ( H T L H ) RatioCut(A_1,...,A_k)=\sum \limits_{i=1}^k \frac{cut({|A_i|},\overline {|A_i|})}{|A_i|}\\ =\sum \limits_{i=1}^kh_i^TLh_i=\sum \limits_{i=1}^k(H^TLH)_{ii}=Tr(H^TLH) RatioCut(A1,...,Ak)=i=1∑k∣Ai∣cut(∣Ai∣,∣Ai∣)=i=1∑khiTLhi=i=1∑k(HTLH)ii=Tr(HTLH)
现在问题转化为
min A 1 , . . . , A k T r ( H T L H ) s . t , H T H = I , h i j = { 1 / ∣ A i ∣ i f i ∈ A j 0 o t h e r w i s e \mathop {\min }\limits_{{A_1},...,{A_k}} Tr(H^TLH) s.t,H^TH=I,{h_{ij}} = \left\{ \begin{array}{l} 1/\sqrt {|{A_i}|} \quad \quad {\rm{ if }}\quad i \in {A_j}\\ 0\quad \quad \quad \quad otherwise \end{array} \right. A1,...,AkminTr(HTLH)s.t,HTH=I,hij={1/∣Ai∣ifi∈Aj0otherwise
近似为
min A 1 , . . . , A k T r ( H T L H ) . s . t , H T H = I \mathop {\min }\limits_{{A_1},...,{A_k}} Tr(H^TLH) .s.t,H^TH=I A1,...,AkminTr(HTLH).s.t,HTH=I
对于矩阵的Rayleigh商,现在给出结论 L L L前k个较小的特征值对应的特征向量组合起来就是 H H H,具体推导过程可以参考之前PCA推导.
下图即谱聚类的分类的结果,不同GMM和KMeans,谱聚类可以轻易的将圆分开,因为它是工作在图上的,而不是欧式聚类
将拉普拉斯矩阵L的特征值进行从小到大排布,并且记 Δ k = ∣ λ k − λ k − 1 ∣ {\Delta _k} = |{\lambda _k} - {\lambda _{k - 1}}| Δk=∣λk−λk−1∣,如果 Δ k \Delta_k Δk突变,表示特征值由小到大突变,对应于下图的渐变的过程,此时只需要关心突变前k个特征值,此时k=聚类的个数。
算法的时间复杂度为 O ( n 3 ) O(n^3) O(n3),效率较低。
注意具体代码参考下一篇,嘻嘻嘻嘻