谱聚类(Spectral Clustering)算法的原理与实现步骤
字数 1731 2025-10-31 08:19:17
谱聚类(Spectral Clustering)算法的原理与实现步骤
谱聚类是一种基于图论的聚类方法,它通过数据的相似度矩阵构建图结构,利用图的拉普拉斯矩阵特征向量进行降维,最后在低维空间中使用传统聚类算法(如K-means)完成聚类。以下是详细讲解:
1. 算法背景与核心思想
- 问题:传统K-means等算法对非凸形状或复杂分布的数据聚类效果差。
- 核心思想:将数据点视为图的顶点,相似度作为边权重,通过图切割优化目标(如最小化割边权重)实现聚类。但直接优化是NP难问题,因此转而分析图的拉普拉斯矩阵的谱(特征值/特征向量)来近似求解。
2. 关键步骤与原理
步骤1:构建相似度矩阵
- 输入数据点集 \(X = \{x_1, x_2, ..., x_n\}\)。
- 计算相似度矩阵 \(W \in \mathbb{R}^{n \times n}\),其中 \(W_{ij}\) 表示点 \(x_i\) 和 \(x_j\) 的相似度,常用高斯核函数:
\[ W_{ij} = \exp\left(-\frac{\|x_i - x_j\|^2}{2\sigma^2}\right) \quad (i \neq j), \quad W_{ii} = 0 \]
\(\sigma\) 控制相似度衰减速度。
步骤2:构建图拉普拉斯矩阵
- 定义度矩阵 \(D\):对角矩阵,\(D_{ii} = \sum_{j=1}^n W_{ij}\) 表示顶点 \(i\) 的度。
- 计算拉普拉斯矩阵 \(L\)(常用非标准化形式):
\[ L = D - W \]
标准化形式(如对称归一化拉普拉斯矩阵)可提升稳定性:
\[ L_{\text{sym}} = D^{-1/2} L D^{-1/2} = I - D^{-1/2} W D^{-1/2} \]
步骤3:特征分解
- 对 \(L\)(或 \(L_{\text{sym}}\))进行特征分解,选取前 \(k\) 个最小特征值对应的特征向量。
- 原理:拉普拉斯矩阵的最小特征值为0,对应全1向量。第2到第 \(k+1\) 个最小特征值的特征向量蕴含图的连通结构,能近似最优图切割。
步骤4:特征向量矩阵与降维
- 将前 \(k\) 个特征向量按列组成矩阵 \(U \in \mathbb{R}^{n \times k}\)。
- 矩阵 \(U\) 的每一行视为原数据点在 \(k\) 维谱空间的低维表示。
步骤5:低维空间聚类
- 对矩阵 \(U\) 的行向量使用K-means算法进行聚类,得到最终簇划分。
3. 示例说明(简单数据集)
假设4个数据点:\(x_1, x_2\) 距离近(相似度高),\(x_3, x_4\) 距离近,但两组距离远。
- 相似度矩阵 \(W\)(σ=1):
\[ W = \begin{bmatrix} 0 & 0.9 & 0.1 & 0.1 \\ 0.9 & 0 & 0.1 & 0.1 \\ 0.1 & 0.1 & 0 & 0.9 \\ 0.1 & 0.1 & 0.9 & 0 \end{bmatrix} \]
- 度矩阵 \(D\):
\[ D = \text{diag}(1.1, 1.1, 1.1, 1.1) \]
- 拉普拉斯矩阵 \(L = D - W\)。
- 特征分解:最小两个特征值对应的特征向量将点映射到二维空间,其中 \([x_1, x_2]\) 和 \([x_3, x_4]\) 分别聚集。
- K-means聚类:在特征向量空间中明显分离为两类。
4. 算法特点与注意事项
- 优点:
- 能处理非凸聚类问题。
- 对噪声相对鲁棒。
- 缺点:
- 相似度矩阵计算和特征分解计算复杂度高(\(O(n^3)\)),不适合大规模数据。
- 参数 \(\sigma\) 的选择影响结果,需通过启发式方法(如最近邻距离)调整。
- 改进:使用稀疏相似度矩阵(如k近邻图)加速计算。
通过以上步骤,谱聚类将复杂数据分布转化为图结构问题,利用谱理论实现有效聚类。