谱聚类(Spectral Clustering)算法学习详解

谱聚类算法(Spectral Clustering)

谱聚类算法原理:###

1.谱聚类是广泛使用的聚类算法,比起传统的K-means算法,谱聚类算法对数据分布的适用性更强,聚类效果也很优秀,计算量小,实现起来也不复杂。
具体原理
2.谱聚类是从图论中演化出来的算法,后来在聚类中得到广泛的应用。主要思想是把所有的数据看作空间中的点,这些点之间可以用边连接起来。距离较远的两个点之间的边权重值较低,反之,距离较近的两个点之间的边权重值高,通过对所有数据点组成的图进行切图,让切图之后,不同子图间的边权重尽可能低,而子图内的边权重则尽可能高,从而达到聚类的目的。
原理咋看很简单,但具体需要完全理解图伦中的无向图线性代数,矩阵分析

谱聚类基础一:无向权重图

图的概念是:对于一个图G,一般用点的集合V和边的集合E来描述,即为G(V,E)。其中V为数据集的所有的点( v 1 v_1 v1, v 2 v_2 v2, v 3 v_3 v3, v n v_n vn)。 对于任意的两个点,可以有边连接,也可以无边连接,定义权重 W i j W_{ij} Wij v i v_i vi v j v_j vj之间的权重,由于这里我们是无向图,所以, W i j W_{ij} Wij = W j i W_{ji} Wji。对于无边的两个点, W i j W_{ij} Wij = 0 ,对于有边的两个点, W i j W_{ij} Wij > 0.
对于图中的任意一个点 V i V_i Vi,它的度 d i d_i di 定义为 和它的所有连接的边的权重之和,即:
d i = ∑ j = 1 n W i j d_i = \sum_{j = 1}^n W_{ij} di=j=1nWij
【PS:这里我们也需了解邻接矩阵W,第i行的第j个值对应我们的权重值 W i j W_{ij} Wij
利用每个点度的定义,我们得到一个nxn的度矩阵D(degree matrix),D是一个对角矩阵,只有主对角线有值,定义如下:
[ d 1 . . . . . . . . . d 2 . . . . . . . . . . . . . . . . . . d n ] (3) \left[ \begin{matrix} d_1 & ... & ... \\ ... & d_2 & ... \\ ... & ... & ... \\ ... & ... & d_n \end{matrix} \right] \tag{3} d1............d2...............dn(3)
D i i D_{ii} Dii = degree of X i X_i Xi = ∑ j X i j \sum_{j} X_{ij} jXij, 特别留意的是data的convolution,自连线也算一个degree。
例子:比如有三个点 X 1 X_1 X1, X 2 X_2 X2, X 3 X_3 X3 X 1 X_1 X1 X 2 X_2 X2相连有边, X 3 X_3 X3单独,无任何相连边。因此,我们得知度矩阵D为:
[ 2 0 0 0 2 0 0 0 1 ] (3) \left[ \begin{matrix} 2 & 0 & 0 \\ 0 & 2 & 0 \\ 0 & 0 & 1 \end{matrix} \right] \tag{3} 200020001(3)
D 11 D_{11} D11 = 1,即代表 X 1 X_1 X1有2条连线, X 1 X_1 X1自连线一条, X 1 X_1 X1 X 2 X_2 X2相连有边为一条,总共为2。同理来计算 D 22 D_{22} D22, D 33 D_{33} D33
Adjacency matrix-邻矩阵A
意思是点与点之间是否相连,相连为1,不相连为0。如果有权重值的话,那么就不是1了而是相对应的权重值,也就是上面所说的矩阵矩阵W。
所以上例子(暂无权重值)的邻矩阵A为:
[ 1 1 0 1 1 0 0 0 1 ] (3) \left[ \begin{matrix} 1 & 1 & 0 \\ 1 & 1 & 0 \\ 0 & 0 & 1 \end{matrix} \right] \tag{3} 110110001(3)
【特别注意的是 graph laplation: L= D - A】

谱聚类基础二:相似矩阵

在基础一的时候,我们提到邻接矩阵W,它是任意两点之间的权重值 W i j W_{ij} Wij组成的矩阵,通常我们可以自己输入权重,但是谱聚类中,我们只有数据点的定义,没有直接给出邻接矩阵W,那么如何得到邻接矩阵W呢?
基本思想是距离比较远的两个点的权重值低,距离近的权重值高,所以,我们可以通过样本点的距离度量的相似矩阵S 来获得邻接矩阵W

构建邻接矩阵W的方法有三种: ε \varepsilon ε-临近法,K邻近法和全连接法

  1. ε \varepsilon ε-临近法
    对于 ε \varepsilon ε-临近法,我们设置一个距离阀值 ε \varepsilon ε,首先用欧式距离 S i j S_{ij} Sijd度量任意两点的 X i X_i Xi, X j X_j Xj的距离,然后比较 S i j S_{ij} Sij和阀值 ε \varepsilon ε的大小,来定义邻接矩阵W:即
    W i j = { ε     S i j ≤ ε 0     S i j > ε W_{ij} = \lbrace_{\varepsilon ~~~S_{ij} \leq \varepsilon}^{0~~~S_{ij} > \varepsilon} Wij={ ε   Sijε0   Sij>ε
    由公式可知,两点的权重不是 ε \varepsilon ε就是0,不精准,因为实际应用中,很少使用 ε \varepsilon ε-临近法。
  2. K邻近法-略
  3. 全连接法-最常见的方法来建立邻接矩阵W
    所有点之间的权重值大于0,为此称之为全连接法。可以选择不同的核函数来定义边权重,常用的是多项式核函数,高斯函数,Sigmoid核函数,其中最常见的是高斯核函数RBF,此时,邻接矩阵W和相似矩阵S一致相同,公式如下:
    W i j = S i j = e x p ( − ∣ ∣ x i − x j ∣ ∣ 2 2 σ 2 ) W_{ij} = S_{ij} = exp (- \frac{||x_i - x_j||^2}{2\sigma^2}) Wij=Sij=exp(2σ2xixj2)

谱聚类基础三:拉普拉斯矩阵Graph Laplacians-矩阵L

L = D - A = D - W
Graph Laplacians矩阵L的性质如下:

  1. 矩阵L是对称矩阵,这可以从D和W都是对称矩阵推理出
  2. 由于矩阵L是对称矩阵,它所有的特征值为实数
  3. 对于任意的向量f,我们有:
    f T L f = 1 2 ∑ i , j = 1 n w i j ( f i − f j ) 2 f ^TLf = \frac{1}{2} \sum_{i,j=1}^nw_{ij}(f_i-f_j)^2 fTLf=21i,j=1nwij(fifj)2
    【自己推理】

谱聚类基础四:无向图切图

对于无向图G的切图,我们的目标是将图G(V,E)切成互相没有连接的K个子图。每个子图的点集合即为: A 1 A_1 A1, A 2 A_2 A2, A k A_k Ak,满足 A i A_i Ai ⋂ \bigcap A j A_j Aj = ∅ \emptyset , 且 A 1 ∪ A 2 ∪ A 3 ∪ . . . ∪ A k = V A_1\cup A_2 \cup A_3 \cup...\cup A_k=V A1A2A3...Ak=V
现在就开始讨论如何切图才是能实现我们的目标:使得子图内的点权重和最高,子图之间的点权重之和低。

猜你喜欢

转载自blog.csdn.net/Jiana_Feng/article/details/108981673
今日推荐