五、谱聚类

  1. 谱聚类spectral clustering 是一种基于图论的聚类方法。

  2. 谱聚类的主要思想是:基于数据集 五、谱聚类 - 图1 来构建图 五、谱聚类 - 图2 ,其中:

    • 顶点 五、谱聚类 - 图3 :由数据集中的数据点组成:五、谱聚类 - 图4

    • 五、谱聚类 - 图5 :任意一对顶点之间存在边。

      距离越近的一对顶点,边的权重越高;距离越远的一对顶点,边的权重越低。

    通过对图 五、谱聚类 - 图6 进行切割,使得切割之后:不同子图之间的边的权重尽可能的低、各子图内的边的权重尽可能的高。这样就完成了聚类。

    spectral_cluster

5.1 邻接矩阵

  1. 在图 五、谱聚类 - 图8 中,定义权重 五、谱聚类 - 图9 为顶点 五、谱聚类 - 图10五、谱聚类 - 图11 之间的权重,其中 五、谱聚类 - 图12

    定义 五、谱聚类 - 图13 为邻接矩阵:

    五、谱聚类 - 图14

    由于 五、谱聚类 - 图15 为无向图,因此 五、谱聚类 - 图16 。即: 五、谱聚类 - 图17

    • 对图中顶点 五、谱聚类 - 图18 ,定义它的度 五、谱聚类 - 图19 为:所有与顶点 五、谱聚类 - 图20 相连的边的权重之和:五、谱聚类 - 图21

      定义度矩阵 五、谱聚类 - 图22 为一个对角矩阵,其中对角线分别为各顶点的度:

      五、谱聚类 - 图23

    • 对于顶点集合 五、谱聚类 - 图24 的一个子集 五、谱聚类 - 图25,定义 五、谱聚类 - 图26 为子集 五、谱聚类 - 图27 中点的个数;定义 五、谱聚类 - 图28 ,为子集五、谱聚类 - 图29 中所有点的度之和。

  2. 事实上在谱聚类中,通常只给定数据集 五、谱聚类 - 图30,因此需要计算出邻接矩阵 五、谱聚类 - 图31

    • 基本思想是:距离较近的一对点(即相似都较高),边的权重较高;距离较远的一对点(即相似度较低),边的权重较低。

    • 基本方法是:首先构建相似度矩阵 五、谱聚类 - 图32,然后使用 五、谱聚类 - 图33-近邻法、五、谱聚类 - 图34 近邻法、或者全连接法。

      五、谱聚类 - 图35

      • 通常相似度采用高斯核:五、谱聚类 - 图36 。此时有五、谱聚类 - 图37 。即: 五、谱聚类 - 图38
      • 也可以选择不同的核函数,如:多项式核函数、高斯核函数、sigmoid 核函数。
  3. 五、谱聚类 - 图39-近邻法:设置一个距离阈值 五、谱聚类 - 图40,定义邻接矩阵 五、谱聚类 - 图41 为:

    五、谱聚类 - 图42

    即:一对相似度小于 五、谱聚类 - 图43 的点,边的权重为 五、谱聚类 - 图44 ;否则边的权重为 0 。

    五、谱聚类 - 图45-近邻法得到的权重要么是 0 ,要么是 五、谱聚类 - 图46,权重度量很不精确,因此实际应用较少。

  4. 五、谱聚类 - 图47 近邻法:利用 KNN 算法选择每个样本最近的 五、谱聚类 - 图48 个点作为近邻,其它点与当前点之间的边的权重为 0 。

    这种做法会导致邻接矩阵 五、谱聚类 - 图49 非对称,因为当 五、谱聚类 - 图50五、谱聚类 - 图51五、谱聚类 - 图52 近邻时, 五、谱聚类 - 图53 不一定是 五、谱聚类 - 图54五、谱聚类 - 图55 近邻。

    为了解决对称性问题,有两种做法:

    • 只要一个点在另一个点的 五、谱聚类 - 图56 近邻中,则认为是近邻。即:取并集。

      五、谱聚类 - 图57

    • 只有两个点互为对方的 五、谱聚类 - 图58 近邻中,则认为是近邻。即:取交集。

      五、谱聚类 - 图59

  5. 全连接法:所有点之间的权重都大于 0 :五、谱聚类 - 图60

5.2 拉普拉斯矩阵

  1. 定义拉普拉斯矩阵 五、谱聚类 - 图61 ,其中 五、谱聚类 - 图62 为度矩阵、 五、谱聚类 - 图63 为邻接矩阵。

  2. 拉普拉斯矩阵 五、谱聚类 - 图64 的性质:

    • 五、谱聚类 - 图65 是对称矩阵,即 五、谱聚类 - 图66 。这是因为 五、谱聚类 - 图67 都是对称矩阵。

    • 因为 五、谱聚类 - 图68 是实对称矩阵,因此它的特征值都是实数。

    • 对任意向量 五、谱聚类 - 图69,有:五、谱聚类 - 图70

    • 五、谱聚类 - 图71 是半正定的,且对应的 五、谱聚类 - 图72 个特征值都大于等于0,且最小的特征值为 0。

      设其 五、谱聚类 - 图73 个实特征值从小到大为 五、谱聚类 - 图74 ,即:五、谱聚类 - 图75

5.3 谱聚类算法

  1. 给定无向图 五、谱聚类 - 图76,设子图的点的集合 五、谱聚类 - 图77 和子图的点的集合 五、谱聚类 - 图78 都是 五、谱聚类 - 图79 的子集,且 五、谱聚类 - 图80

    定义 五、谱聚类 - 图81五、谱聚类 - 图82 之间的切图权重为:五、谱聚类 - 图83

    即:所有连接 五、谱聚类 - 图84五、谱聚类 - 图85 之间的边的权重。

  2. 对于无向图 五、谱聚类 - 图86 ,假设将它切分为 五、谱聚类 - 图87 个子图:每个子图的点的集合为 五、谱聚类 - 图88 ,满足 五、谱聚类 - 图89五、谱聚类 - 图90

    定义切图cut 为:五、谱聚类 - 图91 ,其中 五、谱聚类 - 图92五、谱聚类 - 图93 的补集。

5.3.1 最小切图

  1. 引入指示向量 五、谱聚类 - 图94,定义:

    五、谱聚类 - 图95

    则有:

    五、谱聚类 - 图96

    因此 五、谱聚类 - 图97 。其中 五、谱聚类 - 图98五、谱聚类 - 图99 为矩阵的迹。

    考虑到顶点 五、谱聚类 - 图100 有且仅位于一个子图中,则有约束条件:

    五、谱聚类 - 图101

  2. 最小切图算法: 五、谱聚类 - 图102 最小的切分。即求解:

    五、谱聚类 - 图103

  3. 最小切图切分使得不同子图之间的边的权重尽可能的低,但是容易产生分割出只包含几个顶点的较小子图的歪斜分割现象。

    spectral_cluster

5.3.2 RatioCut 算法

  1. RatioCut 切图不仅考虑最小化 五、谱聚类 - 图105,它还考虑最大化每个子图的点的个数。即:

    五、谱聚类 - 图106

    • 最小化 五、谱聚类 - 图107:使得不同子图之间的边的权重尽可能的低。
    • 最大化每个子图的点的个数:使得各子图尽可能的大。
  2. 引入指示向量 五、谱聚类 - 图108,定义:

    五、谱聚类 - 图109

    则有:

    五、谱聚类 - 图110

    因此 五、谱聚类 - 图111 。其中 五、谱聚类 - 图112五、谱聚类 - 图113 为矩阵的迹。

    考虑到顶点 五、谱聚类 - 图114 有且仅位于一个子图中,则有约束条件:

    五、谱聚类 - 图115

  3. RatioCut算法: 五、谱聚类 - 图116 最小的切分。即求解:

    五、谱聚类 - 图117

    因此只需要求解 五、谱聚类 - 图118 最小的 五、谱聚类 - 图119 个特征值,求得对应的 五、谱聚类 - 图120 个特征向量组成 五、谱聚类 - 图121

    通常在求解得到 五、谱聚类 - 图122 之后,还需要对行进行标准化:五、谱聚类 - 图123

  4. 事实上这样解得的 五、谱聚类 - 图124 不能完全满足指示向量的定义。因此在得到 五、谱聚类 - 图125 之后,还需要对每一行进行一次传统的聚类(如:k-means 聚类)。

  5. RatioCut 算法:

    • 输入:

      • 数据集 五、谱聚类 - 图126
      • 降维的维度 五、谱聚类 - 图127
      • 二次聚类算法
      • 二次聚类的维度 五、谱聚类 - 图128
    • 输出:聚类簇 五、谱聚类 - 图129

    • 算法步骤:

      • 根据 五、谱聚类 - 图130 构建相似度矩阵 五、谱聚类 - 图131

      • 根据相似度矩阵构建邻接矩阵 五、谱聚类 - 图132、度矩阵 五、谱聚类 - 图133 ,计算拉普拉斯矩阵 五、谱聚类 - 图134

      • 计算 五、谱聚类 - 图135 最小的 五、谱聚类 - 图136 个特征值,以及对应的特征向量 五、谱聚类 - 图137,构建矩阵 五、谱聚类 - 图138

      • 五、谱聚类 - 图139 按照行进行标准化:五、谱聚类 - 图140 ,得到 五、谱聚类 - 图141

      • 五、谱聚类 - 图142 中每一行作为一个 五、谱聚类 - 图143 维的样本,一共 五、谱聚类 - 图144 个样本,利用二次聚类算法来聚类,二次聚类的维度为 五、谱聚类 - 图145

        最终得到簇划分 五、谱聚类 - 图146

5.3.3 Ncut 算法

  1. Ncut 切图不仅考虑最小化 五、谱聚类 - 图147,它还考虑最大化每个子图的边的权重。即:

    五、谱聚类 - 图148

    • 最小化 五、谱聚类 - 图149:使得不同子图之间的边的权重尽可能的低。
    • 最大化每个子图的边的权重:使得各子图内的边的权重尽可能的高。
  2. 引入指示向量 五、谱聚类 - 图150,定义:

    五、谱聚类 - 图151

    则有:

    五、谱聚类 - 图152

    因此 五、谱聚类 - 图153 。其中 五、谱聚类 - 图154五、谱聚类 - 图155 为矩阵的迹。

    考虑到顶点 五、谱聚类 - 图156 有且仅位于一个子图中,则有约束条件:

    五、谱聚类 - 图157

  3. Ncut算法: 五、谱聚类 - 图158 最小的切分。即求解

    五、谱聚类 - 图159

  4. 五、谱聚类 - 图160 ,则有:

    五、谱聚类 - 图161

    五、谱聚类 - 图162 ,则最优化目标变成:

    五、谱聚类 - 图163

    因此只需要求解 五、谱聚类 - 图164 最小的 五、谱聚类 - 图165 个特征值,求得对应的 五、谱聚类 - 图166 个特征向量组成 五、谱聚类 - 图167 。然后对行进行标准化:五、谱聚类 - 图168

    RatioCut 类似,Ncut 也需要对五、谱聚类 - 图169 的每一行进行一次传统的聚类(如:k-means 聚类)。

  5. 事实上 五、谱聚类 - 图170 相当于对拉普拉斯矩阵 五、谱聚类 - 图171 进行了一次标准化:五、谱聚类 - 图172

  6. Ncut 算法:

    • 输入:

      • 数据集 五、谱聚类 - 图173
      • 降维的维度 五、谱聚类 - 图174
      • 二次聚类算法
      • 二次聚类的维度 五、谱聚类 - 图175
    • 输出:聚类簇 五、谱聚类 - 图176

    • 算法步骤:

      • 根据 五、谱聚类 - 图177 构建相似度矩阵 五、谱聚类 - 图178

      • 根据相似度矩阵构建邻接矩阵 五、谱聚类 - 图179、度矩阵 五、谱聚类 - 图180 ,计算拉普拉斯矩阵 五、谱聚类 - 图181

      • 构建标准化之后的拉普拉斯矩阵 五、谱聚类 - 图182

      • 计算 五、谱聚类 - 图183 最小的 五、谱聚类 - 图184 个特征值,以及对应的特征向量 五、谱聚类 - 图185,构建矩阵 五、谱聚类 - 图186

      • 五、谱聚类 - 图187 按照行进行标准化:五、谱聚类 - 图188 ,得到 五、谱聚类 - 图189

      • 五、谱聚类 - 图190 中每一行作为一个 五、谱聚类 - 图191 维的样本,一共 五、谱聚类 - 图192 个样本,利用二次聚类算法来聚类,二次聚类的维度为 五、谱聚类 - 图193

        最终得到簇划分 五、谱聚类 - 图194

5.4 性质

  1. 谱聚类算法优点:

    • 只需要数据之间的相似度矩阵,因此处理稀疏数据时很有效。
    • 由于使用了降维,因此在处理高维数据聚类时效果较好。
  2. 谱聚类算法缺点:

    • 如果最终聚类的维度非常高,则由于降维的幅度不够,则谱聚类的运行速度和最后聚类的效果均不好。
    • 聚类效果依赖于相似度矩阵,不同相似度矩阵得到的最终聚类效果可能不同。