聚类模型-图聚类-谱聚类

聚类模型

1、层次聚类
2、原型聚类-K-means
3、模型聚类-GMM
4、EM算法-LDA主题模型
5、密度聚类-DBSCAN
6、图聚类-谱聚类

六、图聚类-谱聚类

谱聚类是一种定义在图上的聚类算法,与其说是聚类算法,更是一种图的向量表示。基于向量表示之后,一般可以采用其他的聚类方法完成最后聚类结果。所以谱聚类的类表示既依赖于向量表示也与之后采用的聚类算法有关。

对于一个图 G G G,我们一般用点的集合 V V V和边的集合 E E E来描述。即为 G ( V , E ) G(V,E) G(V,E)。其中 V V V即为我们数据集里面所有的点 ( v 1 , v 2 , . . . v m ) (v_1,v_2,...v_{m}) (v1,v2,...vm)。 谱聚类根据图上节点之间的关系(关系度量: ϵ \epsilon ϵ邻域, k k k近邻图,全连接图),构建一个邻接矩阵来描述 m m m个节点之间的相似性:
W = [ w 11 w 12 . w 1 m w 21 . w 2 m . w i j . w m 1 w m 2 . w m m ] W=\begin{bmatrix} w_{11} &w_{12} &. &w_{1m} \\ w_{21}& . & & w_{2m}\\ .& & w_{ij} &.\\ w_{m1}&w_{m2} & .& w_{mm} \end{bmatrix} W=w11w21.wm1w12.wm2.wij.w1mw2m.wmm
由节点之间关系的对称性,显然相似性矩阵 W W W是对称矩阵。现在,我们希望学习到节点的向 量表示 x i , i ​ = ​ 1 , 2.. m x_{i},i\!=\!1,2..m xi,i=1,2..m,使得相似性越大的两个节点 i , j i,j i,j的向量表示 x i , x j ∈ R n x_{i},x_{j} \in R^{n} xi,xjRn的差异尽可能的小,因此,我们可以定义如下损失函数:
min ⁡ ∑ i , j = 1 m w i j ∣ x i − x j ∣ 2 ∣ x i ∣ ∣ x j ∣ \min\sum_{i,j=1}^{m}w_{ij}\frac{|x_{i}-x_{j}|^2}{|x_{i}||x_{j}|} mini,j=1mwijxixjxixj2
即当 w i j w_{ij} wij大时,相似性越大, ∣ x i − x j ∣ 2 |x_{i}-x_{j}|^2 xixj2尽可能小。上式经过如下变换,也就得到了谱聚类与拉普拉斯矩阵的关系:
1 2 ∑ i , j = 1 m w i j ( x i − x j ) 2 = 1 2 ( ∑ i = 1 m ∑ j = 1 m w i j x i 2 − 2 ∑ i , j = 1 m w i j x i x j + ∑ i = 1 m ∑ j = 1 m w i j x j 2 ) = ∑ i m d i x i 2 + ∑ j = 1 m d j x j 2 − 2 ∑ i , j = 1 m w i j x i x j = ∑ i = 1 n d i x i 2 − ∑ i , j = 1 n w i j x i x j = t r ( D X X T ) − t r ( W X X T ) = t r ( X T D X ) − t r ( X T W X ) = t r ( X T L X ) \begin{aligned} \frac{1}{2}\sum\limits_{i,j=1}^{m}w_{ij}(x_i-x_j)^2&=\frac{1}{2}( \sum\limits_{i=1}^{m}\sum_{j=1}^{m}w_{ij} x_i^2 - 2 \sum\limits_{i,j=1}^{m}w_{ij}x_ix_j + \sum\limits_{i=1}^{m}\sum_{j=1}^{m}w_{ij}x_j^2)\\ &=\sum_{i}^{m}d_{i}x_{i}^{2}+\sum_{j=1}^{m}d_{j}x_{j}^{2}-2\sum\limits_{i,j=1}^{m}w_{ij}x_ix_j\\ &= \sum\limits_{i=1}^{n}d_ix_i^2 - \sum\limits_{i,j=1}^{n}w_{ij}x_ix_j\\ & =tr(DXX^T) - tr(WXX^T)\\ &=tr(X^TDX) - tr(X^TWX)\\ &= tr (X^TLX) \end{aligned} 21i,j=1mwij(xixj)2=21(i=1mj=1mwijxi22i,j=1mwijxixj+i=1mj=1mwijxj2)=imdixi2+j=1mdjxj22i,j=1mwijxixj=i=1ndixi2i,j=1nwijxixj=tr(DXXT)tr(WXXT)=tr(XTDX)tr(XTWX)=tr(XTLX)
其中 d i , d j d_{i},d_{j} di,dj w i j w_{ij} wij按行求和(按列求和),因此矩阵 D D D w i j w_{ij} wij的按行求和(按列求和)的对角矩阵。
[ d 11 0 . 0 0 . 0 . d i i . 0 0 . d m m ] \begin{bmatrix} d_{11} &0 &. &0 \\ 0& . & & 0\\ .& & d_{ii} &.\\ 0&0 & .& d_{mm} \end{bmatrix} d110.00.0.dii.00.dmm
其中 X ∈ R m × n X\in R^{m\times n} XRm×n其中 L = D − W L=D-W L=DW,我们称 L L L为拉普拉斯矩阵。

因此,当我们约束 ∣ x i ∣ = 1 , i = 1 , 2.. m |x_{i}|=1,i=1,2..m xi=1,i=1,2..m时,我们的目标函数为:
min ⁡ t r ( X T L X ) ↔ ∑ i = 1 K X k T L X k = ∑ i = 1 K L X k X k T s . t . X T X = I \min tr (X^TLX)\\ \leftrightarrow \sum_{i=1}^{K}X_{k}^{T}LX_{k}=\sum_{i=1}^{K}LX_{k}X_{k}^{T}\\ s.t.X^{T}X=\mathbf{I} mintr(XTLX)i=1KXkTLXk=i=1KLXkXkTs.t.XTX=I
其中 X k ∈ R m × 1 X_{k} \in R^{m\times1} XkRm×1表示所有样本在 k k k维构成的向量,由 X T X = I → X k T X k = 1 X^{T}X=\mathbf{I} \rightarrow X_{k}^{T}X_{k}=1 XTX=IXkTXk=1.所以目标函数右乘 X k X_{k} Xk ∑ i = 1 K L X k = λ X k \sum_{i=1}^{K}LX_{k}=\lambda X_{k} i=1KLXk=λXk,因此,最小化目标函数等价 L L L的前 K K K个最小特征值相加,对应的 X X X为前 K K K个最下特征值对应的特征向量构成。就此目标函数求解问题转变为特征向量求解问题。

得到图节点的向量表示之后,后面就可以采用常用的聚类算法进行聚类,比如Kmeans。

谱聚类算法流程:

1)确定图上节点关系度量,得到相似性度量矩阵

2)根据相似性度量矩阵得到拉普拉斯矩阵

3)对拉普拉斯矩阵求解前 K K K个最小特征值对应的特征向量,即为节点的向量表示

4)采用聚类算法对节点向量进行聚类

谱聚类特点:

1)相似性度量矩阵限制了数据的表示为 m 2 m^{2} m2

2)谱聚类对相似性度量矩阵的向量表示存在损失

3)谱聚类的向量表示数学形式非常漂亮,代码实现方便

4)聚类的效果与相似性度量矩阵的计算,表示,以及最终采用的聚类算法有关

你可能感兴趣的:(机器学习)