谱聚类方法

转载https://www.cnblogs.com/pinard/p/6221564.html
link

谱聚类

是从图论中演化出来的算法,后来在聚类中得到了广泛的应用。它的主要思想是把所有的数据看做空间中的点,这些点之间可以用边连接起来。距离较远的两个点之间的边权重值较低,而距离较近的两个点之间的边权重值较高,通过对所有数据点组成的图进行切图,让切图后不同的子图间边权重和尽可能的低,而子图内的边权重和尽可能的高,从而达到聚类的目的。

邻接矩阵W,它是由任意两点之间的权重值wij组成的矩阵。基本思想是,距离较远的两个点之间的边权重值较低,而距离较近的两个点之间的边权重值较高,不过这仅仅是定性,我们需要定量的权重值。一般来说,我们可以通过样本点距离度量的相似矩阵S来获得邻接矩阵W

构建邻接矩阵W的方法有三类。ϵ-邻近法,K邻近法和全连接法。

拉普拉斯矩阵L=D−W。D即为我们第二节讲的度矩阵,它是一个对角矩阵。而W即为我们第二节讲的邻接矩阵,它可以由我们第三节的方法构建出。

拉普拉斯矩阵有一些很好的性质如下:

1)拉普拉斯矩阵是对称矩阵,这可以由D和W都是对称矩阵而得。

2)由于拉普拉斯矩阵是对称矩阵,则它的所有的特征值都是实数。

3)对于任意的向量f,我们有
    在这里插入图片描述
无向图切图
对于我们k个子图点的集合:A1,A2,…Ak,我们定义切图cut为:
在这里插入图片描述
那么如何切图可以让子图内的点权重和高,子图间的点权重和低呢?一个自然的想法就是最小化cut(A1,A2,…Ak), 但是可以发现,这种极小化的切图存在问题,如下图:
在这里插入图片描述
我们选择一个权重最小的边缘的点,比如C和H之间进行cut,这样可以最小化cut(A1,A2,…Ak), 但是却不是最优的切图,如何避免这种切图,并且找到类似图中"Best Cut"这样的最优切图呢?我们下一节就来看看谱聚类使用的切图方法。

谱聚类之切图聚类
为了避免最小切图导致的切图效果不佳,我们需要对每个子图的规模做出限定,一般来说,有两种切图方式,第一种是RatioCut,第二种是Ncut
RatioCut
对每个切图,不光考虑最小化cut(A1,A2,…Ak),它还同时考虑最大化每个子图点的个数
在这里插入图片描述
在这里插入图片描述
我们的RatioCut切图,实际上就是最小化我们的tr( H T L H H^TLH HTLH)。注意到 H T L H H^TLH HTLH,则我们的切图优化目标为:
在这里插入图片描述
我们的目标是找到目标的最小的特征值,得到对应的特征向量,此时对应二分切图效果最佳。

NCut
Ncut切图和RatioCut切图很类似,但是把Ratiocut的分母|Ai|换成vol(Ai)。(由于子图样本的个数多并不一定权重就大)
在这里插入图片描述
Ncut切图对指示向量h做了改进
在这里插入图片描述
我们的优化目标仍然是
在这里插入图片描述
但是此时我们的 H T H ≠ I H^TH≠I HTH=I,而是 H T D H = I H^TDH=I HTDH=I

也就是说,此时我们的优化目标最终为:
在这里插入图片描述

谱聚类算法总结
一般来说,谱聚类主要的注意点为相似矩阵的生成方式(参见第二节),切图的方式(参见第六节)以及最后的聚类方法(参见第六节)。

最常用的相似矩阵的生成方式是基于高斯核距离的全连接方式,最常用的切图方式是Ncut。而到最后常用的聚类方法为K-Means。下面以Ncut总结谱聚类算法流程。
在这里插入图片描述
谱聚类算法的主要优点有:

1)谱聚类只需要数据之间的相似度矩阵,因此对于处理稀疏数据的聚类很有效。这点传统聚类算法比如K-Means很难做到

2)由于使用了降维,因此在处理高维数据聚类时的复杂度比传统聚类算法好。

谱聚类算法的主要缺点有:

1)如果最终聚类的维度非常高,则由于降维的幅度不够,谱聚类的运行速度和最后的聚类效果均不好。

2) 聚类效果依赖于相似矩阵,不同的相似矩阵得到的最终聚类效果可能很不同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值