谱聚类详细说明

谱聚类是一种将数据聚类转换为图分割问题的算法,通过构建相似度图并利用拉普拉斯矩阵进行特征分解。本文详细介绍了谱聚类的四步流程:构建相似图、计算拉普拉斯矩阵、寻找最小特征向量和应用K-means聚类。同时探讨了未规范化和规范化两种谱聚类方法,并分析了切图的目标函数RatioCut。构图方式包括ε-neighborhood、k-nearestneighborhood和fullyconnected。
摘要由CSDN通过智能技术生成

定义介绍

聚类的直观解释是根据样本间相似度,将它们分成不同组。谱聚类的思想是将样本看作顶点,样本间的相似度看作带权的边,从而将聚类问题转为图分割问题:找到一种图分割的方法使得连接不同组的边的权重尽可能低(这意味着组间相似度要尽可能低),组内的边的权重尽可能高(这意味着组内相似度要尽可能高)。

在这里插入图片描述
如上图中,一共有6个顶点,顶点之间的连线表示两个顶点的相似度,现在要将这图分成两半(两个类),要怎样分割(去掉哪边条)?根据谱聚类的思想,应该去掉的边是用虚线表示的那条。最后,剩下的两半就分别对应两个类了。

unnormalized谱聚类normalized谱聚类

unnormalized谱聚类步骤:

  1. 建立similarity graph,并用 W 表示similarity graph的带权邻接矩阵
  2. 计算unnormalized graph Laplacian matrix L(L = D - W, 其中D是degree matrix)
  3. 计算L的前K个最小的特征向量
  4. 把这k个特征向量排列在一起组成一个N*k的矩阵,将其中每一行看作k维空间中的一个向量,并使用 K-means 算法进行聚类

原理解析

为什么会是上面四个步骤呢?

第一步

谱聚类的思想就是要转化为图分割问题。因此,第一步就是将原问题转化为图。转为图有两个问题要解决:一是两个顶点的边要怎样定义;二是要保留哪些边。

对于第一个问题,如果两个点在一定程度上相似,就在两个点之间添加一条边。相似的程度由边的权重表示(上图中边上面的数值就是权重了)。因此,只要是计算相似度的公式都可用,不过常用的是Gaussian similarity function。

要保留部分边的原因有:边太多了不好处理;权重太低的边是多余的。常用的保留边的方法是建立k-nearest neighbor graph。在这种图中,每个顶点只与K个相似度最高的点连边

第二步

unnormalized graph Laplacian matrix(以下用L表示)有很多很好的性质,也正是这个原因,才要在第二步中计算这么一个矩阵。最重要的性质是下面这一组性质:
在这里插入图片描述

第三步

将原问题转化为图后,接下来的工作就是决定怎样分割了。图分割问题实际上就是最小割问题(mincut problem)。最小割问题可定义为最小化以下目标函数:
在这里插入图片描述
其中k表示分成k个组,Ai表示第i个组,表示第Ai加横杠的补集,W(A,B)表示第A组与第B组之间的所有边的权重之和。

这个式子的直观意义:如果要分成K个组,那么其代价就是进行分割时去掉的边的权重的总和。可惜的是直接最小化这式子通常会导致不好的分割。以分成2类为例,这个式子通常会将图分成这样的两类:一个点为一类,剩下的所有点为另一类。显然,这样的分割是很不好的。因为我们期望着每个类都有合理的大小。所以,要对这个式子进行改进,改进后的公式(称为RatioCut)如下:
在这里插入图片描述
其中|A|表示A组中包含的顶点数目。

在RatioCut中,如果某一组包含的顶点数越少,那么它的值就越大。在一个最小化问题中,这相当于是惩罚,也就是不鼓励将组分得太小。现在只要将最小化RatioCut解出来,分割就完成了。不幸的是,这是个NP难问题。想要在多项式时间内解出来,就要对这个问题作一个转化了。在转化的过程中,就用到上面提到的L的那一组性质,经过若干推导,最后可以得到这样的一个问题:
在这里插入图片描述
其中H是一个矩阵,它的元素的定义(Eq.(5))如下:
在这里插入图片描述
如果H矩阵的元素hij不为0,则说明第i个点属于第j个类。也就是说,只要得到H矩阵,就能知道要怎样分割了。可惜的是,这个问题仍然是NP难问题。但是,如果我们让H矩阵的元素能够取任意值,这个问题就变成多项式时间内可解的了,此时问题变为:
在这里插入图片描述
根据Rayleigh-Ritz theorem,这个问题的解是L的前k个最小的特征向量组成的矩阵H,其中特征向量是按列来排,即H的每一列,均为一个特征向量。

第四步

在第三步中,我们为了松驰NP难问题,让H矩阵取任意值,因此,解出来的H矩阵不再具有原来的性质——元素值能指出哪个点属于哪一类。尽管如此,对于k-means来说,将H矩阵的每一行当作一个点进行聚类还是挺轻松的。因此,用k-means对H矩阵进行聚类作为谱聚类的最终结果

细说构图

在构图中,一般有三种构图方式:
   1. ε-neighborhood
   2. k-nearest neighborhood
   3. fully connected

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

切图

目的是找到一条权重最小,又能平衡切除子图大小的边
1. RatioCut
2. Ncut

在这里插入图片描述
问题在于:在这里插入图片描述
在这里插入图片描述

Ratiocut

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值