谱聚类

谱聚类是一种基于图论的聚类方法,通过对样本数据的拉普拉斯矩阵的特征向量进行聚类,从而达到对样本数据聚类的母的。谱聚类可以理解为将高维空间的数据映射到低维,然后在低维空间用其它聚类算法(如KMeans,c-均值聚类)进行聚类。

相似图构造

相似图,用来刻画数据点局部的近邻关系。顶点谱聚类算法过程 谱聚类 svd_谱聚类对应一个样本点。

  • k-近邻图
    如果谱聚类算法过程 谱聚类 svd_谱聚类算法过程_02谱聚类算法过程 谱聚类 svd_谱聚类_03的近邻,那么谱聚类算法过程 谱聚类 svd_谱聚类算法过程_02谱聚类算法过程 谱聚类 svd_谱聚类_03之间存在一条边。由于每个样本点的近邻情况不完全相同,因此这种方法构造的相似图不是对称的。
  • 对称k-近邻图:
    如果两个点互为k近邻,那么这两个点之间存在一条边。
  • 谱聚类算法过程 谱聚类 svd_谱聚类算法过程_06近邻图
    任意两个距离小于谱聚类算法过程 谱聚类 svd_谱聚类算法过程_06的点之间存在一条边。
  • 全连接图
    这种方法表示任意两个样本点之间都有相似度,但是距离较远的样本点之间相似度较低。

图拉普拉斯矩阵

在引入拉普拉斯矩阵之前,先介绍下面的符号表示:

  • 谱聚类算法过程 谱聚类 svd_谱聚类算法过程_08是边权重
  • 节点谱聚类算法过程 谱聚类 svd_相似度_09的度 (degreee),定义为:谱聚类算法过程 谱聚类 svd_谱聚类算法过程_10
  • 度矩阵:谱聚类算法过程 谱聚类 svd_相似度_11
  • 加权邻接矩阵:谱聚类算法过程 谱聚类 svd_谱聚类_12,即构造的相似度矩阵。
未标准化拉普拉斯矩阵

谱聚类算法过程 谱聚类 svd_谱聚类算法过程_13

标准化拉普拉斯矩阵

标准化拉普拉斯矩阵有两种表示方法,一种基于随机游走(Random Walk)的标准化拉普拉斯矩阵谱聚类算法过程 谱聚类 svd_聚类_14和对称标准化拉普拉斯矩阵谱聚类算法过程 谱聚类 svd_聚类_15,定义如下:
谱聚类算法过程 谱聚类 svd_谱聚类_16
谱聚类算法过程 谱聚类 svd_谱聚类_17

拉普拉斯矩阵的性质

Laplacian矩阵L,有下面几个性质:

  • (a) 对任意一个向量谱聚类算法过程 谱聚类 svd_聚类_18 ,都有下面的性质:
    对于为标准化拉普拉斯矩阵有:
    谱聚类算法过程 谱聚类 svd_相似度_19
    对于这个性质的证明过程如下:
    谱聚类算法过程 谱聚类 svd_谱聚类算法过程_20
    对于标准化拉普拉斯矩阵有:
    谱聚类算法过程 谱聚类 svd_相似度_21
  • (b) L和谱聚类算法过程 谱聚类 svd_相似度_22是对称的和半正定的。
    w和D矩阵都是对称矩阵,所以L是对称矩阵。由于权重谱聚类算法过程 谱聚类 svd_谱聚类算法过程_23,根据性质(a),所以谱聚类算法过程 谱聚类 svd_谱聚类_24, 即L为半正定矩阵。

谱聚类算法

  1. 计算相似性矩阵谱聚类算法过程 谱聚类 svd_相似度_25
  2. 计算度矩阵,从而计算未归一化的图拉普拉斯矩阵L
  3. 计算L的前k个特征向量谱聚类算法过程 谱聚类 svd_相似度_26
  4. 谱聚类算法过程 谱聚类 svd_谱聚类算法过程_27为以前k个特征向量谱聚类算法过程 谱聚类 svd_相似度_26为列向量构成的矩阵(前k个最小特征值构成的特征向量)
  5. 谱聚类算法过程 谱聚类 svd_聚类_29是U的第谱聚类算法过程 谱聚类 svd_谱聚类_30行构成的向量
  6. 使用C-均值聚类方法将样本点谱聚类算法过程 谱聚类 svd_相似度_31,聚类称为k类 谱聚类算法过程 谱聚类 svd_谱聚类_32
  7. 输出,最终聚类为谱聚类算法过程 谱聚类 svd_谱聚类_33,其中谱聚类算法过程 谱聚类 svd_谱聚类算法过程_34

谱聚类算法推导

聚类问题,可以被看成寻找图的一个划分,不同点集之间的边权重小,(意味着不同cut的点彼此不相似),而同一点集内的边权重较大,(同一个cut点彼此相似)

对于一个无向图G,每个子图的点集合为:谱聚类算法过程 谱聚类 svd_谱聚类_35,定义图切分(graph cut)为:
谱聚类算法过程 谱聚类 svd_聚类_36
其中:任意两个子图点集的权重切为:谱聚类算法过程 谱聚类 svd_谱聚类_37
对于切图,还有另外两种方式,分别为RadioCut和Ncut
RadioCut切图中,不仅考虑使得不同组之间的权重最小化,也考虑了每个组中的样本点尽量多:
谱聚类算法过程 谱聚类 svd_谱聚类_38
Ncut在最小化损失函数外,还考虑了子图之间的权重大小。由于子图样本个数多,不代表权重就打,所以切图时基于权重也更加符合我们的目标。因此一般来说Ncut优于RadioCut,定义为:
谱聚类算法过程 谱聚类 svd_谱聚类_39
其中 谱聚类算法过程 谱聚类 svd_聚类_40,表示谱聚类算法过程 谱聚类 svd_谱聚类算法过程_41中元素度的总和。

注意问题
  • 谱聚类往往对相似型图及参数选择比较敏感,而现在还没有确定的理论或者方法作为指导。
  • 一般来说,k近邻图可以比较好的连接不同尺度下的数据,通常作为首选;而参数选择应该使相似性图是连通的或者连通分量少
  • 尽量选择归一化的图拉普拉斯

聚类没有标签,存在合理性问题。

参考:谱聚类博客介绍