谱聚类(Spectral Clustering)

谱聚类是一种基于图论的聚类方法,通过构建数据点间的无向权重图,利用拉普拉斯矩阵的特征值分解进行聚类。本文深入介绍了谱聚类的基本概念,包括谱的定义、无向权重图、相似矩阵和拉普拉斯矩阵的性质,并从切图的角度解释了最小切、RatioCut和Ncut等概念。最后,概述了谱聚类的算法流程。
摘要由CSDN通过智能技术生成

1. 谱聚类概述

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

  • 乍一看,这个算法原理的确简单,但是要完全理解这个算法的话,需要对图论中的无向图,线性代数和矩阵分析都有一定的了解。下面我们就从这些需要的基础知识开始,一步步学习谱聚类。

2. 谱聚类基础

2.1、谱

方阵作为线性算子,它的所有特征值的全体统称为方阵的谱。方阵的谱半径为最大的特征值。
在这里插入图片描述

2.2 无向权重图

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

2.3 相似矩阵/邻接矩阵 W

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

2.3 拉普拉斯矩阵

在这里插入图片描述
证明一:
在这里插入图片描述
证明二:
在这里插入图片描述
在这里插入图片描述

拉普拉斯性质一

在这里插入图片描述

拉普拉斯性质二

在这里插入图片描述

拉普拉斯性质三

在这里插入图片描述

3 用切图的观点来解释谱聚类

聚类算法给我们的直观上的感觉就是根据样本点的相似性将他们划分成不同的组,使得在相同组内的数据点是相似的,不同组之间的数据点是不相似的。对于给定的样本点计算相似度,形成相似度图,因而谱聚类的问题可以被重新描述如下:我们想要找到图形的一个分区,使得不同分区之间的边具有非常低的权重(这意味着不同分区中的点彼此不相似)并且分区内的边具有高权重(这意味着其中的点彼此相似)。在这个小节我们将讨论如何推导谱聚类为近似的图分区的问题。
A的体积(Volume)
在这里插入图片描述
顶点集间的连接(links)
在这里插入图片描述

3.1 最小切(mincut)

在这里插入图片描述
在这里插入图片描述
 根据这个公式,对于下面这个图,假设点7和点8之间的权重值很小,那么很容易有红线所示的划分(假设二分),上面的代价函数计算出来的值很小。但显然绿色线所示才是最佳的分法。
在这里插入图片描述

3.2 RatioCut切图

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

在这里插入图片描述

3.3 Ncut切图

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

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
谱聚类spectral clustering)是一种基于图论的聚类算法,适用于无法使用传统聚类算法(如K-means)有效划分的数据。谱聚类的核心思想是将数据集转换成图形结构,利用图的谱分解来实现聚类。 在Python中,有一个常用的谱聚类库是scikit-learn的`SpectralClustering`。该库提供了一种简单且高效的方法来执行谱聚类。 使用`SpectralClustering`库进行谱聚类的步骤如下: 1. 导入库:首先需要导入`SpectralClustering`库。 ```python from sklearn.cluster import SpectralClustering ``` 2. 创建模型:使用`SpectralClustering`函数创建一个谱聚类模型对象,并传入相关参数。 ```python model = SpectralClustering(n_clusters=2, affinity='nearest_neighbors') ``` 其中,`n_clusters`表示需要聚类的簇数,`affinity`表示相似度的计算方法,常用的选项包括`nearest_neighbors`和`rbf`。 3. 训练模型:使用`fit`函数训练模型,传入需要进行聚类的数据。 ```python model.fit(data) ``` 4. 获取聚类结果:通过访问模型的`labels_`属性,可以获取到每个样本的聚类标签。 ```python cluster_labels = model.labels_ ``` 聚类标签是一个表示每个样本所属簇的数组。 总结来说,Python的谱聚类库提供了一个方便而有效的方式来执行谱聚类。通过导入库、创建模型、训练模型和获取聚类结果的步骤,可以轻松地使用谱聚类算法对数据进行聚类分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值