初探“谱聚类”算法(无公式)


本文不会设计到数学公式的推导,而是从抽象层面对谱聚类进行叙述,并介绍几个改进的算法。试图给读者留有一些印象,了解谱聚类的基本概念、特性,在以后需要的时候可以进行尝试。

谱聚类就是基于图论的聚类方法,通过对样本数据的拉普拉斯矩阵的特征向量进行聚类,从而达到对样本数据进行聚类的目的。
https://zhuanlan.zhihu.com/p/29941760【简单理解】

1. 浅谈谱聚类

首先介绍两个基本概念:

  • :Y=A*X,矩阵X乘以A等于对矩阵X做了空间线性变换,那么Y=map(X),A就是map的线性算子,它的所有特征值的全体,称为方阵的谱;

  • 方阵的谱半径: 方阵最大的特征值

1.1 抽象理解

谱聚类把待聚类的数据集中的每一个样本看做是图中一个顶点,这些顶点连接在一起,连接的这些边上有权重,权重的大小表示这些样本之间的相似程度。同一类的顶点它们的相似程度很高,在图论中体现为同一类的顶点中连接它们的边的权重很大,不在同一类的顶点连接它们的边的权重很小。于是谱聚类的最终目标就是找到一种切割图的方法,使得切割之后的各个子图内的权重很大,子图之间的权重很小。
在这里插入图片描述

1.2 基本算法步骤

一种经典的谱聚类算法如下所示,首先计算给定数据集中的相似度矩阵 W W W,这里有很多种方式可以计算,比如K近邻、全连接法【可见参考资料2】,其主要目的是衡量数据点之间的相似度;根据相似度矩阵 W W W构造图拉普拉斯矩阵 L L L(这里需要利用W进一步构造度矩阵和邻接矩阵,才能得到图拉普拉斯矩阵);计算图拉普拉斯矩阵的特征值,获取前k个最小特征值对应的特征向量 Z ∈ R n × k Z∈R^{n\times k} ZRn×k;将 Z Z Z中每一行视为一个数据点,进行K-Mean聚类,最后聚类的结果就对应于原始数据的聚类结果。

在这里插入图片描述
可以看到,谱聚类在实际应用时并没有显示地以切图问题为目标函数,而是计算拉普拉斯矩阵的特征向量进行聚类,这是因为常用的两种切图方式(RatioCut和Ncut)经过数学推导后就是这样的形式【与抽象理解一致】,具体的数学证明可以看参考资料1和2。

可以看到,谱聚类的本质是对数据进行一个降维【利用图拉普拉斯矩阵的特征向量】,数据从 X ∈ R n × m → Z ∈ R n × k X∈R^{n\times m} → Z∈R^{n\times k} XRn×mZRn×k,然后对降维后的点进行K-Means聚类。

1.3 优缺点

优点:

  • 谱聚类只需要数据之间的相似度矩阵,因此对于处理稀疏数据的聚类很有效;
  • 可以解决区域重叠问题(不同类存在相交区域),采用数据降维,使得降维后的数据可分【与SVM的思想优点相反】;
  • 许多聚类算法基于欧几里得几何,因此对聚类的形状施加了限制,但谱聚类可以适应更广泛的几何形状,并检测非凸模式和线性不可分离的聚类【non-convex patterns and linearly non-separable clusters】。

在这里插入图片描述

缺点

  • 计算复杂度较高,主要分两个阶段,第一个阶段需要求得图拉普拉斯矩阵,这需要求得各点之间度相似度矩阵 O ( d n 2 ) O(dn^2) O(dn2)【图构造】,d为数据维度;第二阶段需要求得图拉普拉斯的谱,时间复杂度为 O ( n 3 ) O(n^3) O(n3)【特征分解】.
  • 聚类效果依赖于相似矩阵,不同的相似矩阵得到的最终聚类效果可能很不同【对参数选择敏感】。

2. 基于锚点的谱聚类

在不显著降低准确率的情况下大大减少时间复杂度

核心:选取一个较小的anchor集【通常为原始数据点的子集】,计算所有数据点和anchor集之间的相似度,减少相似度矩阵维度 or 使得相似度矩阵稀疏化【导致拉普拉斯矩阵也是稀疏的,从而更高效地计算出谱】。

2.1 Large Scale Spectral Clustering with Landmark-Based Representation, AAAI 2011

由于谱聚类的时间复杂度过高导致其无法在大数据集上应用,因此出现了很多改进的方法:比如使用采样策略减少数据的尺寸,或者是减少特征分解步骤的时间复杂度。对于采样的方法,虽然它们很有效,但代价是在采样过程损失了数据的结构信息。

本文提出了一个名为LSC(Landmark-based Spectral Clustering)的可扩展的谱聚类算法,其核心思想是选取p(p<<n)个代表性数据点作为landmark,将剩余数据点表示为这些landmark的线性组合,然后使用基于landmark的表示有效地计算数据的谱嵌入(spectral embedding)。并且整体的算法时间复杂度与输入呈线性关系,构图需要 O ( p n m ) O(pnm) O(pnm),计算特征值需要 O ( p 3 + p 2 n ) O(p3 + p2n) O(p3+p2n)

这里省略数学推导,直接给出算法流程:首先在数据集X中随机选取或者利用K-Means选取p个landmark;计算landmark与剩余数据之间相似度矩阵 Z Z Z;计算得到 Z Z T ZZ^T ZZT的前k个特征向量A,并根据公式【详见原文】得到最终的特征向量B;将B中每一行视为一个数据点,执行k-means聚类得到最终的结果。

在这里插入图片描述

2.2 Consistency of Anchor-based Spectral Clustering,arxiv 2021

这篇文章提出了一个名叫AnchorNN的方法,非常简单。先从原数据集 X n X_n Xn中随机选取一个子集 Y m Y_m Ym,对 Y m Y_m Ym应用谱聚类得到聚类结果。对剩余的数据点(不在 Y m Y_m Ym内)采用最近邻算法赋予标签,算法如下所示:
在这里插入图片描述

这篇文章的方法非常简单,主要是为anchor-based提供理论支持,效果没有LSC好

3. 更多参考资料

本文是对谱聚类进行一个简单的探索,谱聚类作为一个经典的无监督聚类算法,目前已有非常多优秀的改进工作,每年顶会也有不少工作出现,大家有兴趣可以搜索相关资料。

更多参考资料:

【1】https://www.cnblogs.com/pinard/p/6221564.html 谱聚类原理解析,讲得非常好,需要一定的数学基础

【2】https://zhuanlan.zhihu.com/p/392736238 深入浅出谱聚类

【3】https://blog.csdn.net/katrina1rani/article/details/107260731 各种聚类算法优缺点

【4】https://www.bilibili.com/video/BV1rQ4y1P7be?from=search&seid=11565107861786032460&spm_id_from=333.337.0.0 常见聚类算法分析【视频资源】

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值