谱聚类
谱聚类是一种基于图论的聚类方法,通过对样本数据的拉普拉斯矩阵的特征向量进行聚类,从而达到对样本数据聚类的母的。谱聚类可以理解为将高维空间的数据映射到低维,然后在低维空间用其它聚类算法(如KMeans,c-均值聚类)进行聚类。
相似图构造
相似图,用来刻画数据点局部的近邻关系。顶点对应一个样本点。
- k-近邻图
如果是的近邻,那么和之间存在一条边。由于每个样本点的近邻情况不完全相同,因此这种方法构造的相似图不是对称的。 - 对称k-近邻图:
如果两个点互为k近邻,那么这两个点之间存在一条边。 - 近邻图
任意两个距离小于的点之间存在一条边。 - 全连接图
这种方法表示任意两个样本点之间都有相似度,但是距离较远的样本点之间相似度较低。
图拉普拉斯矩阵
在引入拉普拉斯矩阵之前,先介绍下面的符号表示:
- 是边权重
- 节点的度 (degreee),定义为:
- 度矩阵:
- 加权邻接矩阵:,即构造的相似度矩阵。
未标准化拉普拉斯矩阵
标准化拉普拉斯矩阵
标准化拉普拉斯矩阵有两种表示方法,一种基于随机游走(Random Walk)的标准化拉普拉斯矩阵和对称标准化拉普拉斯矩阵,定义如下:
拉普拉斯矩阵的性质
Laplacian矩阵L,有下面几个性质:
- (a) 对任意一个向量 ,都有下面的性质:
对于为标准化拉普拉斯矩阵有:
对于这个性质的证明过程如下:
对于标准化拉普拉斯矩阵有: - (b) L和是对称的和半正定的。
w和D矩阵都是对称矩阵,所以L是对称矩阵。由于权重,根据性质(a),所以, 即L为半正定矩阵。
谱聚类算法
- 计算相似性矩阵,
- 计算度矩阵,从而计算未归一化的图拉普拉斯矩阵L
- 计算L的前k个特征向量
- 令为以前k个特征向量为列向量构成的矩阵(前k个最小特征值构成的特征向量)
- 设是U的第行构成的向量
- 使用C-均值聚类方法将样本点,聚类称为k类
- 输出,最终聚类为,其中
谱聚类算法推导
聚类问题,可以被看成寻找图的一个划分,不同点集之间的边权重小,(意味着不同cut的点彼此不相似),而同一点集内的边权重较大,(同一个cut点彼此相似)
对于一个无向图G,每个子图的点集合为:,定义图切分(graph cut)为:
其中:任意两个子图点集的权重切为:
对于切图,还有另外两种方式,分别为RadioCut和Ncut
RadioCut切图中,不仅考虑使得不同组之间的权重最小化,也考虑了每个组中的样本点尽量多:
Ncut在最小化损失函数外,还考虑了子图之间的权重大小。由于子图样本个数多,不代表权重就打,所以切图时基于权重也更加符合我们的目标。因此一般来说Ncut优于RadioCut,定义为:
其中 ,表示中元素度的总和。
注意问题
- 谱聚类往往对相似型图及参数选择比较敏感,而现在还没有确定的理论或者方法作为指导。
- 一般来说,k近邻图可以比较好的连接不同尺度下的数据,通常作为首选;而参数选择应该使相似性图是连通的或者连通分量少
- 尽量选择归一化的图拉普拉斯
聚类没有标签,存在合理性问题。
参考:谱聚类博客介绍