1 Spectral clustering 谱聚类概述

援引文章的一段话:

谱聚类(spectral clustering)是广泛使用的聚类算法,比起传统的K-Means算法,谱聚类对数据分布的适应性更强,聚类效果也很优秀,同时聚类的计算量也小很多,更加难能可贵的是实现起来也不复杂。在处理实际的聚类问题时,个人认为谱聚类是应该首先考虑的几种算法之一。

谱聚类是从图论中演化出来的算法,如果对于图神经网络 GNN 中基于频谱(spectral-based)的方法比较熟悉的话,则这一部分将会轻松拿下;当然如果掌握了这一部分的内容,基于频谱的 GNN 也可以轻松拿下。

谱聚类的主要思想是,把每一个数据点看作一个图中的节点,他们之间通过被赋予权重的边所连接,而谱聚类的目标就是希在图上望找到 k 不相交个子图(节点集合的划分)来作为 k 个簇,以此对节点进行聚类。例如下图中,我们将整个图划分为两个子图 A 和 B,即可将子图 A 和子图 B 中的节点分别聚为一类。
未命名文件 (1).png

2 数学基础 —— 图上的矩阵

在图论中,我们一般将一个图表示为Spectral clustering 谱聚类 - 图2%22%20aria-hidden%3D%22true%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-47%22%20x%3D%220%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-3D%22%20x%3D%221064%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-28%22%20x%3D%222120%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-56%22%20x%3D%222510%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-2C%22%20x%3D%223279%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-45%22%20x%3D%223724%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-29%22%20x%3D%224489%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3C%2Fsvg%3E#card=math&code=G%20%3D%20%28V%2C%20E%29&id=S2XBB)的二元组,其中Spectral clustering 谱聚类 - 图3Spectral clustering 谱聚类 - 图4%22%20aria-hidden%3D%22true%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-45%22%20x%3D%220%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-3D%22%20x%3D%221042%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-7B%22%20x%3D%222098%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-28%22%20x%3D%222599%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-75%22%20x%3D%222988%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-2C%22%20x%3D%223561%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-76%22%20x%3D%224006%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-29%22%20x%3D%224491%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-2223%22%20x%3D%224881%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-75%22%20x%3D%225159%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-2C%22%20x%3D%225732%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-76%22%20x%3D%226177%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-2208%22%20x%3D%226940%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-56%22%20x%3D%227885%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-7D%22%20x%3D%228655%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3C%2Fsvg%3E#card=math&code=E%20%3D%20%5C%7B%28u%2C%20v%29%20%7C%20u%2C%20v%20%5Cin%20V%5C%7D&id=s4IZL)分别是图的节点和边集合。在图结构的分析与计算中,矩阵扮演了最重要的图信息存储的角色。可以说,在计算机中,图就是被存储在矩阵中的,即图可以用特殊的矩阵进行表示。

  1. 邻接矩阵Spectral clustering 谱聚类 - 图5

Spectral clustering 谱聚类 - 图6

其中如果 Spectral clustering 谱聚类 - 图7 直接有边,则 Spectral clustering 谱聚类 - 图8 就是这两个节点之间的权重;一般谱聚类中都假定我们形成的图是无向图,则 Spectral clustering 谱聚类 - 图9Spectral clustering 谱聚类 - 图10 则是一个对称矩阵

  1. 节点度矩阵Spectral clustering 谱聚类 - 图11

Spectral clustering 谱聚类 - 图12

其中Spectral clustering 谱聚类 - 图13,即与节点Spectral clustering 谱聚类 - 图14相连所有边的权重之和。同时可以注意到,节点度矩阵Spectral clustering 谱聚类 - 图15是一个对角阵。

  1. 拉普拉斯矩阵Spectral clustering 谱聚类 - 图16

Spectral clustering 谱聚类 - 图17

拉普拉斯矩阵(Laplacian matrix)可算是图计算、信号分析领域的老熟人了,基于频谱的 GNN 中核心技术之一就是拉普拉斯矩阵了。拉普拉斯矩阵有很多非常好的性质:

  1. Spectral clustering 谱聚类 - 图18对称阵,则两个不同的特征向量相互正交
  2. 对任意向量

Spectral clustering 谱聚类 - 图19

Spectral clustering 谱聚类 - 图20

其中Spectral clustering 谱聚类 - 图21可以用来作为对 Spectral clustering 谱聚类 - 图22个节点的特征向量,比如Spectral clustering 谱聚类 - 图23就代表了节点Spectral clustering 谱聚类 - 图24的属性值。
这样Spectral clustering 谱聚类 - 图25就是一个半正定矩阵,具有一些不错的性质。对于上式证明如下:

Spectral clustering 谱聚类 - 图26

我们可以看到,如果Spectral clustering 谱聚类 - 图27是代表节点信号强度的向量(如Spectral clustering 谱聚类 - 图28代表Spectral clustering 谱聚类 - 图29节点信号强度),则Spectral clustering 谱聚类 - 图30则可以看作是图中所有节点的加权平滑程度(或总体差异)的度量。

  1. 因为是半正定矩阵,所以Spectral clustering 谱聚类 - 图31所有的特征值都大于等于0。Spectral clustering 谱聚类 - 图32有一个特征值是 0,且对应的特征向量是全 1 的向量,这一点不难证明。
  2. 更多性质详见文章

3 谱聚类问题建模

3.1 相似矩阵

可以看到,不管是节点的度矩阵Spectral clustering 谱聚类 - 图33还是拉普拉斯矩阵Spectral clustering 谱聚类 - 图34,都是以邻接矩阵Spectral clustering 谱聚类 - 图35为基础才能求出的。那么问题就来了,我们模型的输入,也就是数据预处理的结果,只有Spectral clustering 谱聚类 - 图36个点的特征向量,而没有这Spectral clustering 谱聚类 - 图37个节点之间的权重,该如何构建邻接矩阵Spectral clustering 谱聚类 - 图38呢?

基本思想就是,距离越远的两个点之间的边权重较低,而距离较近的两个点之间权重值较高。所以一般通过计算相似矩阵Spectral clustering 谱聚类 - 图39来获得邻接矩阵Spectral clustering 谱聚类 - 图40。常见的有三类:ε-邻近法K 近邻法以及全连接法最常用的就是全连接法,下面将仅对全连接法进行介绍,其他两种可以参考文章

在全连接法中,任意两点之间的权重都大于 0,因此被称为全连接法。全连接法通过选择不同的核函数来定义边的权重,常用的有多项式核函数、高斯核函数(RBF)和 Sigmoid 核函数等。最常用的就是高斯核函数 RBF,此时邻接矩阵和相似矩阵相同

Spectral clustering 谱聚类 - 图41

3.2 谱聚类的数学模型

对于无向图Spectral clustering 谱聚类 - 图42,我们首先将其划分成 k 个子图,且子图之间没有重复的节点,这 k 个子图的节点集记作Spectral clustering 谱聚类 - 图43,且Spectral clustering 谱聚类 - 图44Spectral clustering 谱聚类 - 图45

对于任意两个节点集合Spectral clustering 谱聚类 - 图46,我们将它们两个之间的权重定义为

Spectral clustering 谱聚类 - 图47

谱聚类的思想就是,最小化任意两个子图节点集之间的权重和。由此,我们定义对于Spectral clustering 谱聚类 - 图48的切图:

Spectral clustering 谱聚类 - 图49%22%20aria-hidden%3D%22true%22%3E%0A%3Cg%20transform%3D%22translate(-11%2C0)%22%3E%0A%3Cg%20width%3D%2250%25%22%3E%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3Cg%20transform%3D%22translate(789%2C0)%22%3E%0A%3Cg%20transform%3D%22translate(10841%2C-88)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-63%22%20x%3D%220%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-75%22%20x%3D%22433%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-74%22%20x%3D%221006%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-28%22%20x%3D%221367%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3Cg%20transform%3D%22translate(1757%2C0)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-56%22%20x%3D%220%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMAIN-31%22%20x%3D%22825%22%20y%3D%22-213%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-2C%22%20x%3D%222794%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3Cg%20transform%3D%22translate(3239%2C0)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-56%22%20x%3D%220%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMAIN-32%22%20x%3D%22825%22%20y%3D%22-213%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-2C%22%20x%3D%224276%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-2026%22%20x%3D%224722%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-2C%22%20x%3D%226061%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3Cg%20transform%3D%22translate(6506%2C0)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-56%22%20x%3D%220%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-6B%22%20x%3D%22825%22%20y%3D%22-213%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-29%22%20x%3D%227558%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-3D%22%20x%3D%228226%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3Cg%20transform%3D%22translate(9282%2C0)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJSZ1-2211%22%20x%3D%220%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-6B%22%20x%3D%221494%22%20y%3D%22675%22%3E%3C%2Fuse%3E%0A%3Cg%20transform%3D%22translate(1056%2C-287)%22%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-69%22%20x%3D%220%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMAIN-3D%22%20x%3D%22345%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMAIN-31%22%20x%3D%221124%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-57%22%20x%3D%2211754%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-28%22%20x%3D%2212802%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3Cg%20transform%3D%22translate(13192%2C0)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-56%22%20x%3D%220%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-69%22%20x%3D%22825%22%20y%3D%22-213%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-2C%22%20x%3D%2214119%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3Cg%20transform%3D%22translate(14565%2C0)%22%3E%0A%3Cg%20transform%3D%22translate(35%2C0)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMATHI-56%22%20x%3D%220%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20transform%3D%22scale(0.707)%22%20xlink%3Ahref%3D%22%23E1-MJMATHI-69%22%20x%3D%22825%22%20y%3D%22-213%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3Cg%20transform%3D%22translate(0%2C248)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-AF%22%20x%3D%22-70%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3Cg%20transform%3D%22translate(321.37818613144964%2C0)%20scale(0.5700980412741057%2C1)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-AF%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-AF%22%20x%3D%22497%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-29%22%20x%3D%2215562%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3Cg%20transform%3D%22translate(39225%2C0)%22%3E%0A%3Cg%20width%3D%2250%25%22%3E%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3Cg%20transform%3D%22translate(40025%2C0)%22%3E%0A%3Cg%20transform%3D%22translate(869%2C-88)%22%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-28%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-31%22%20x%3D%22389%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%20%3Cuse%20xlink%3Ahref%3D%22%23E1-MJMAIN-29%22%20x%3D%22890%22%20y%3D%220%22%3E%3C%2Fuse%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fg%3E%0A%3C%2Fsvg%3E#card=math&code=cut%28V1%2C%20V_2%2C%20%5Cldots%2C%20V_k%29%20%3D%20%5Csum%7Bi%3D1%7D%5Ek%20W%28V_i%2C%20%5Coverline%7BV_i%7D%29%20%5Ctag%7B1%7D&id=E8hdJ)

其中Spectral clustering 谱聚类 - 图50Spectral clustering 谱聚类 - 图51的补集,即

Spectral clustering 谱聚类 - 图52

谱聚类的目标就是最小化 Spectral clustering 谱聚类 - 图53

Spectral clustering 谱聚类 - 图54

4 谱聚类算法

直接优化 Spectral clustering 谱聚类 - 图55 是有问题的,比如下图中Cut 1的切法将整个节点集划分为两个子集:Spectral clustering 谱聚类 - 图56Spectral clustering 谱聚类 - 图57,这样就可做到Spectral clustering 谱聚类 - 图58的目标。然而这并不是我们想要的,我们更想要的是Cut 2的划分方式。
未命名文件.png
上面直接优化Spectral clustering 谱聚类 - 图60问题所在,就是没有考虑我们还需要一个簇内的节点个数不能太少。对于上述优化目标的改进与求解,于是就有了以下两个常见的谱聚类算法。

4.1 RatioCut 切图

RatioCut 切图为了解决上述一个簇内节点数过少的问题,同时还在目标函数中加入了每一个簇的节点个数的约束,即:

Spectral clustering 谱聚类 - 图61

为了最小化这个函数,就有牛人提出了以下的解法。
首先我们引入指示变量 Spectral clustering 谱聚类 - 图62,其中Spectral clustering 谱聚类 - 图63为图中节点的个数,也就是需要聚类的样本点数。我们定义Spectral clustering 谱聚类 - 图64Spectral clustering 谱聚类 - 图65的第Spectral clustering 谱聚类 - 图66个分量为

Spectral clustering 谱聚类 - 图67

即如果节点Spectral clustering 谱聚类 - 图68Spectral clustering 谱聚类 - 图69这个节点簇中,则Spectral clustering 谱聚类 - 图70,否则就等于 0。

经过简单的推导,我们可以得到,其实Spectral clustering 谱聚类 - 图71构成了一组单位正交基,因为:

Spectral clustering 谱聚类 - 图72

首先,Spectral clustering 谱聚类 - 图73中有Spectral clustering 谱聚类 - 图74个非零元,而且这些非零元的数值都是Spectral clustering 谱聚类 - 图75,所以

Spectral clustering 谱聚类 - 图76

其次,因为Spectral clustering 谱聚类 - 图77Spectral clustering 谱聚类 - 图78中没有重复的节点,所以 Spectral clustering 谱聚类 - 图79

如果我们计算Spectral clustering 谱聚类 - 图80则有:

Spectral clustering 谱聚类 - 图81

由于Spectral clustering 谱聚类 - 图82,所以Spectral clustering 谱聚类 - 图83

我们将所有的Spectral clustering 谱聚类 - 图84放到一个矩阵中组成Spectral clustering 谱聚类 - 图85,可以得到:

Spectral clustering 谱聚类 - 图86

其中Spectral clustering 谱聚类 - 图87是矩阵Spectral clustering 谱聚类 - 图88迹(trace)。同时注意到Spectral clustering 谱聚类 - 图89,所以我们等价的优化目标变成了

Spectral clustering 谱聚类 - 图90

需要找到矩阵Spectral clustering 谱聚类 - 图91使得Spectral clustering 谱聚类 - 图92是最小的

注意到矩阵Spectral clustering 谱聚类 - 图93中一共有Spectral clustering 谱聚类 - 图94个指示向量,而每个指示向量中有Spectral clustering 谱聚类 - 图95个元素,每个元素的取值为Spectral clustering 谱聚类 - 图96或者Spectral clustering 谱聚类 - 图97,所以总体的搜索空间是Spectral clustering 谱聚类 - 图98,是个 NP 难问题。那么如何近似求解这个问题呢?

如上面的分析中提到的,Spectral clustering 谱聚类 - 图99的每一个子优化目标是Spectral clustering 谱聚类 - 图100,其中所有的Spectral clustering 谱聚类 - 图101构成一组单位正交基。又由于Spectral clustering 谱聚类 - 图102对称矩阵,所以Spectral clustering 谱聚类 - 图103的两两不相同的特征向量也是正交的。Spectral clustering 谱聚类 - 图104的最大值就是Spectral clustering 谱聚类 - 图105的最大特征值,Spectral clustering 谱聚类 - 图106的最小值也是Spectral clustering 谱聚类 - 图107 的最小的特征值。这一点证明如下:

Spectral clustering 谱聚类 - 图108Spectral clustering 谱聚类 - 图109的一组特征值和特征向量,即

Spectral clustering 谱聚类 - 图110

进而有

Spectral clustering 谱聚类 - 图111

如果对Spectral clustering 谱聚类 - 图112进行标准化,那么它依然是Spectral clustering 谱聚类 - 图113特征值为Spectral clustering 谱聚类 - 图114的特征向量:

Spectral clustering 谱聚类 - 图115

进而有

Spectral clustering 谱聚类 - 图116

得证Spectral clustering 谱聚类 - 图117的最大值就是Spectral clustering 谱聚类 - 图118的最大特征值,Spectral clustering 谱聚类 - 图119的最小值也是Spectral clustering 谱聚类 - 图120 的最小的特征值。

对于Spectral clustering 谱聚类 - 图121,我们的目标就是找到Spectral clustering 谱聚类 - 图122的最小特征值,其对应的特征向量就是解Spectral clustering 谱聚类 - 图123;而对于Spectral clustering 谱聚类 - 图124,我们的目标就是找到Spectral clustering 谱聚类 - 图125个最小的特征值及其对应的特征向量,一般来说Spectral clustering 谱聚类 - 图126。这样我们利用维度规约的思想,将矩阵Spectral clustering 谱聚类 - 图127规约成了Spectral clustering 谱聚类 - 图128,近似求解了这个 NP 难问题。多提一句,以前矩阵Spectral clustering 谱聚类 - 图129中的每一行Spectral clustering 谱聚类 - 图130,可以被看作是节点Spectral clustering 谱聚类 - 图131的特征向量;而在矩阵Spectral clustering 谱聚类 - 图132中的每一行Spectral clustering 谱聚类 - 图133成为了节点Spectral clustering 谱聚类 - 图134新的特征向量。相当于我们将每一个节点进行了降维表示

最后一般还要对Spectral clustering 谱聚类 - 图135矩阵按行进行标准化

Spectral clustering 谱聚类 - 图136

因为每一个行向量Spectral clustering 谱聚类 - 图137代表Spectral clustering 谱聚类 - 图138的特征向量,而Spectral clustering 谱聚类 - 图139代表节点Spectral clustering 谱聚类 - 图140在第Spectral clustering 谱聚类 - 图141个簇中的权重,所以我们要按行进行标准化。

由于在维度规约的过程中我们损失了一些信息,导致优化得到的指示向量矩阵Spectral clustering 谱聚类 - 图142不能完全指示个样本的归属(因为现在每一个列向量Spectral clustering 谱聚类 - 图143已经不是非Spectral clustering 谱聚类 - 图144Spectral clustering 谱聚类 - 图145的了)。所以我们需要对Spectral clustering 谱聚类 - 图146个节点在进行一次 K-Means 一类的传统聚类算法,用每个行向量Spectral clustering 谱聚类 - 图147作为节点Spectral clustering 谱聚类 - 图148的特征向量。

4.2 Ncut 切图

Ncut 切图和 RatioCut 切图思路非常像:由于 RatioCut 只考虑到每一个簇的节点不能太少,但一个子图的节点个数多并不能代表这个子图的权重就一定大。所以 Ncut 切图基于每一个子图的权重不能太小为额外优化目标的思路进行聚类。

Spectral clustering 谱聚类 - 图149,即子图Spectral clustering 谱聚类 - 图150中所有节点的度权重之和,Ncut 希望最小化的目标函数为

Spectral clustering 谱聚类 - 图151

同样使用 RatioCut 中优化的 trick,只是更改了指示变量的表示:

Spectral clustering 谱聚类 - 图152

同样的推导方式,有 Spectral clustering 谱聚类 - 图153。所以我们的优化目标依然是 (5) 式

Spectral clustering 谱聚类 - 图154

但现在的指示变量有一个问题Spectral clustering 谱聚类 - 图155只是相互正交,但不是单位向量,所以不能直接用 RatioCut 中降维的思想。而想用维度规约的思想,只需要对指示向量矩阵Spectral clustering 谱聚类 - 图156做一个小小的变换就行:

Spectral clustering 谱聚类 - 图157,其中 Spectral clustering 谱聚类 - 图158,考虑到Spectral clustering 谱聚类 - 图159是对角阵,所以有Spectral clustering 谱聚类 - 图160,进而有:

Spectral clustering 谱聚类 - 图161,
Spectral clustering 谱聚类 - 图162

所有我们的优化目标变成了:

Spectral clustering 谱聚类 - 图163

可以发现,这个式子和 RatioCut 基本一致,只是中间的Spectral clustering 谱聚类 - 图164变成了Spectral clustering 谱聚类 - 图165。同样我们求出来Spectral clustering 谱聚类 - 图166的 k 个最小的特征值和对应的特征向量得到Spectral clustering 谱聚类 - 图167,然后对Spectral clustering 谱聚类 - 图168按行进行标准化,最后再进行一次传统聚类(如 K-Means)就可以了。

顺带说一句,这个Spectral clustering 谱聚类 - 图169其实就是拉普拉斯矩阵标准化的最常用的方式,即

Spectral clustering 谱聚类 - 图170

5 谱聚类算法优缺点

搬运文章

  • 优点
    • 只需要计算数据之间的相似度矩阵,对于处理稀疏数据的聚类很有效,而传统聚类方法 K-Means 等很难做到
    • 由于使用了降维,因此在处理高维数据聚类的时候,复杂度更低
  • 缺点
    • 结果依赖于相似矩阵,不同的相似矩阵得到的聚类效果很可能不同

6 scikit-learn 库的谱聚类使用

  1. 官方文档
  2. 调参心得