第一节:谱聚类算法概述及拉普拉斯矩阵
Posted 快乐江湖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一节:谱聚类算法概述及拉普拉斯矩阵相关的知识,希望对你有一定的参考价值。
文章目录
一:谱聚类算法概述
谱聚类算法:它是一种基于谱聚理论的聚类算法。对于给定数据集 x i i = 1 n , x i ∈ R d \\x_i\\_i=1^n,x_i\\in R^d xii=1n,xi∈Rd,谱聚类算法会把这些数据点映射至无向图 G = ( V , E ) G=(V,E) G=(V,E)
- x i x_i xi对应图 G G G的一个节点 v i v_i vi
- E E E是图中边的集合
接着可以用一个非负的相似矩阵 W W W表示整个无向图,此时元素 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
如下图所示,谱聚类的目标是:将无向图划分为两个或多个子图,使子图内部节点相似而子图间节点相异
二:拉普拉斯矩阵
拉普拉斯矩阵在谱聚类中有着非常重要的作用,而谱聚类算法正是依托于拉普拉斯矩阵的相关性质得出结果的
(1)标准拉普拉斯矩阵
标准拉普拉斯矩阵:其定义如下所示
L = D − W L=D-W L=D−W
- D D D:对角矩阵,且对角元素 d i = ∑ j = 1 n w i j d_i=\\sum\\limits_j=1^nw_ij di=j=1∑nwij
- W W W:邻接矩阵,存储的是无向图
标准拉普拉斯矩阵 L L L有如下性质
- 对于任意向量 f = ( f 1 , . . . , f n ) T ∈ R n f=(f_1,...,f_n)^T \\in R^n f=(f1,...,fn)T∈Rn,有 f T L f = 1 2 ∑ i , j = 1 n w i j ( f i − f j ) 2 f^TLf=\\frac12\\sum\\limits_i,j=1^nw_ij(f_i-f_j)^2 fTLf=21i,j=1∑nwij(fi−fj)2
- L L L是对称的半正定矩阵
- L L L是最小特征值为0,且对应特征向量为1
- L L L有 n n n个非负的实特征值,且0= λ 1 ≤ λ 2 ≤ . . . ≤ λ n \\lambda_1 \\leq \\lambda_2 \\leq... \\leq \\lambda_n λ1≤λ2≤...≤λn
此外,标准拉普拉斯矩阵 L L L的特征值与无向图中连通子图的个数也密切相关。令 G G G是一个权重非负的无向图,图中有 k k k个连通子图: A 1 , A 2 , . . . , A k A_1, A_2,...,A_k A1,A2,...,Ak,这些连通子图的拉普拉斯矩阵为 L i i = 1 k \\L_i\\_i=1^k Lii=1k,则有—— L L L的特征值0的重数和图中连通子图 A 1 , A 2 , . . . , A k A_1, A_2,...,A_k A1,A2,...,Ak的个数相同,并且对应的特征向量为 1 A 1 , 1 A 2 , . . . , 1 A k 1_A_1,1_A_2,...,1_A_k 1A1,1A2,...,1Ak,划分为 k k k个特征空间
各元素的取值为
L
i
j
=
D
i
j
,
(
i
=
j
)
−
1
,
(
i
,
j
∈
e
d
g
e
s
e
e
t
)
0
,
(
o
t
h
e
r
s
)
L_ij=\\begincases D_ij,(i=j) \\\\ -1,(i,j \\in edgeseet) \\\\ 0,(others) \\\\ \\endcases
Lij=⎩
⎨
⎧Dij,(i=j)−1,(i,j∈edgeseet)0,(others)
- 拉普拉斯矩阵的对角线上取值为节点的度
- 如果节点和节点相邻,则取值为-1
- 其余位置为0,因为拉普拉斯矩阵是对称矩阵
(2)归一化拉普拉斯矩阵
- 在模型中我们常常见到的是归一化的拉普拉斯矩阵,所以需要对标准拉普拉斯矩阵进行归一化
归一化拉普拉斯矩阵:通常有两种归一化拉普拉斯矩阵,分别为对称归一化拉普拉斯矩阵 L s y m L_sym Lsym和随机游走归一化拉普拉斯矩阵 L r m L_rm Lrm
L
s
y
m
=
D
−
1
2
L
D
−
1
2
=
I
−
D
−
1
2
W
D
−
1
2
L_sym=D^-\\frac12LD^-\\frac12=I-D^-\\frac12WD^-\\frac12
L
谱聚类算法及其代码(Spectral Clustering)