谱聚类是基于矩阵SVD分解的一种聚类方法,就矩阵分解而言,并没有什么新奇的,但是利用矩阵分解来解决问题的思路值得研究一下
解决的问题 |
优化目标 |
切割目标,切割成本最小,分割后的数据规模差不多大。通俗的说,就是集群内部,节点联系尽量紧密,群集外部连接越少。
解决过程 |
步骤一
建立拉普拉斯矩阵(度矩阵-连接矩阵)这个矩阵第一个巧妙之处在于它的最小特征向量 w 1 ∝ ( 1 , ⋯ , 1 ) w_1 \propto (1,\cdots,1) w1∝(1,⋯,1),这样后面的特征向量因为 w i T w 1 = 0 , w i w_i^Tw_1=0,w_i wiTw1=0,wi里面的元素必然有正有负,因此可以根据符号来聚类。而第二小的特征值对应的向量就是我们要求解的向量的,为什么求的是第二小特征向量呢?
步骤二
提出优化目标,
x
x
x看作特征向量,上式的分母部分可以去掉。了解PCA的人对这个式子再熟悉不过。要使得这个式子最小,而又不能取最小的特征向量,那就只能取第二小的特征向量。那上式的分子部分的意义又是什么呢?
x
i
x_i
xi是
x
x
x的第i个元素,直观的感觉是为了使得上式最小,
x
i
,
x
j
x_i,x_j
xi,xj要尽量同号,就是同一个集群里面,如果非要不同号,选择那些
x
i
,
x
j
x_i,x_j
xi,xj的值比较小的会使得目标比较小。这样做切割,就符合了最优的切割方法。而是上式目标最小的就是
w
2
w_2
w2。当然,这仅仅是一个近似最优,不过可以证明它是有界的,接近理论最优,因此可行。证明过程见参考文件
多聚类也差不多,不过要取多个特征向量对原拉普拉斯矩阵进行降维,降下来后用k-mean进行聚类。
参考文献 |
https://web.stanford.edu/class/cs224w/slides/05-spectral.pdf