谱共聚类

2025年3月17日 | 阅读 7 分钟

一种同时在数据矩阵的行和列中查找聚类的方法称为谱聚类。这与传统的聚类方法相反,传统的聚类方法只能对数据矩阵的行或列进行分组。

在数据分析方面,谱聚类是一种非常有价值的技术,因为它可以揭示数据中隐藏的模式和联系。例如,它可以用于定位具有相似表达模式的基因表达数据集聚类,或在推荐系统中定位相关项目组。

本教程将介绍谱聚类算法以及如何使用 Scikit-Learn 包在 Python 中构建它。

谱聚类算法

谱聚类是一种聚类算法,它利用谱图理论,同时在数据矩阵的行和列中定位聚类。这是通过从信息矩阵构建一个二分图来实现的,其中矩阵的行和列是节点,条目表示连接节点的边。

然后,使用图拉普拉斯矩阵的特征向量,通过谱聚类技术定位统计矩阵内的聚类。

这是通过将数据矩阵和节点视为对象,然后使用特征向量将每个集合划分为聚类来完成的。

谱聚类算法处理具有缺失元素的数据的能力是其优势之一。这是因为该技术不需要数据矩阵是完整的;相反,它仅使用非零条目来创建二分图。

寻找具有不同大小和文档的聚类是谱聚类方法的另一个优点。这是因为规则集使用了图拉普拉斯矩阵的特征向量,这些特征向量对图的邻域形状敏感,因此可以识别不同大小和形状的聚类。

让我们回顾一下谱聚类规则集的基础知识,然后看看如何使用 Scikit-Learn 包在 Python 中强制执行它。

首先,让我们开始导入必要的库

现在,让我们加载用于聚类研究的数据集。鸢尾花数据集是一个众所周知的数据集,它包含 150 个数据点,代表三种不同的鸢尾花(setosa、versicolor 和 Virginia),我们将在此示例中使用它。

获得数据集后,我们现在可以继续实现谱聚类算法。

为了进行谱聚类,我们首先必须创建 SpectralCoClustering 类的实例。此类的两个必需参数是找到的聚类数量(n_clusters)和使用的特征向量数量(n_components)。在这种情况下,我们将 n_clusters 设置为三个,因为数据集中包含三种不同的鸢尾花。

此代码将生成一个显示聚类及其连接的散点图。图中的不同颜色对应于不同的聚类,相似的颜色表示属于同一聚类的数据点。

Spectral Co-clustering

本文介绍了谱聚类算法及其在数据矩阵的行和列中识别聚类方面的应用。我们观察到,谱聚类技术可以揭示数据中隐藏的模式和相关性,使其成为数据分析的有效工具。

我们还看到了一个使用 Scikit-Learn 模块在 Python 中实现谱聚类技术的示例。通过在数据集上使用此方法,我们可以识别数据矩阵的行和列中的聚类,并查看它们之间的连接。找到数据中的模式和趋势可以由此获得帮助。

“谱聚类”是一种机器学习和数据挖掘技术,旨在同时对数据矩阵的行和列进行聚类。与仅对行或列进行聚类的传统聚类技术不同,谱聚类同时考虑了两个维度的相关性。

与谱聚类相关的主要思想和过程

数据表示: 首先,创建一个数据矩阵,其中列代表特征或属性,行代表样本或事件。该矩阵可以是任何行和列之间相关性很强的数据,例如基因表达矩阵或文档-术语矩阵。

图构建: 使用数据矩阵作为指导,创建两个图:一个用于行,一个用于列。这些图中的节点代表行或列,边表示它们之间的连接或相似性。余弦相似度和欧氏距离是常见的相似性度量的两个示例。

谱分解: 对于行图和列图,计算拉普拉斯矩阵。拉普拉斯矩阵揭示了图的结构和连接。为了找到特征向量和特征值,使用谱分解,也称为特征分解。

聚类分配: 使用特征向量将行和列分配到聚类。为此,通常使用谱聚类技术。通过考虑对应于最小特征值的特征向量,可以找到两个维度中的聚类。

精炼: 为了提高共聚类结果的质量,请微调原始聚类分配。使用初始数据矩阵作为指导,可以通过迭代优化过程修改聚类分配。

当处理行和列关联都很重要的数据集时,谱聚类非常有用。许多应用包括图像分析、生物信息学和文本挖掘。它通过帮助识别具有相似模式或行为的行和列子集来揭示数据中的隐藏结构。

请记住,与其他聚类方法类似,谱聚类可能需要参数验证和调整,以确保生成的聚类质量。此外,结果可能受所选相似性度量和图构建技术的影响。因此,根据特定数据集的特征定制策略至关重要。

当然!现在,让我们更详细地探讨一些谱聚类

1. 基于图的方法

亲和矩阵: 在图构建之前,通常根据数据矩阵计算亲和矩阵。亲和矩阵表示行或列之间的成对相似性或距离。欧氏距离、余弦相似度和其他相似性度量是流行的选择。

图构建: 在获得亲和矩阵后,为每一行和每一列创建一个图。网络中的行或列由节点表示,边表示它们之间的关系强度。

拉普拉斯矩阵: 拉普拉斯矩阵是谱方法的重要组成部分。它是一个派生自图的函数,编码图结构信息。

2. 谱聚类: 然后通过将谱聚类应用于这些特征向量来将行和列划分为组。为此,K-means 聚类经常与谱方法结合使用。

3. 应用

文本挖掘: 文档-术语矩阵中的谱聚类可以识别具有相似术语的文档聚类,反之亦然。

生物信息学: 当使用生物信息学分析基因表达数据时,它可以用于查找具有相似表达模式的基因子集和样本。

图像分析: 对于涉及图像分割的任务很有帮助,其中特征和像素分别由行和列表示。

4. 挑战

对参数的敏感性: 谱聚类的有效性可能受聚类数量和相似性度量使用等因素的影响。

可伸缩性: 在处理大型数据集时,谱方法可能会遇到与内存限制和计算复杂性相关的困难。

5. 修改和扩展

稀疏共聚类: 存在用于处理稀疏数据(缺失条目数量很多的稀疏数据矩阵)的扩展,适用于稀疏共聚类。

归一化切割: 为了确保聚类大小平衡,某些版本使用归一化切割。

6. 验证: 轮廓系数、调整兰德指数:可以使用标准的聚类验证指标来评估共聚类结果的质量。

理解这些额外细节将使您能够有效地将谱聚类应用于您的特定数据集并有意义地评估结果。

结论

总之,谱聚类是一种在机器学习和数据分析中同时对数据矩阵的行和列进行聚类的有效方法。谱分解和基于图的表示用于捕获样本和属性之间复杂的相互作用。通过基于图的方法,谱聚类根据成对相似性为行和列创建图。

底层结构主要由从这些图中构建的拉普拉斯矩阵捕获。与传统的聚类技术不同,谱聚类同时考虑样本和特征维度。这在理解数据至关重要的特征和样本关系的情况下特别有用。

谱聚类在图像分析、生物信息学和文本挖掘等多个领域都有应用。它在数据矩阵中发现隐藏的模式,从而能够识别重要的子集。谱聚类需要仔细的参数调整才能成功。结果受聚类数量和相似性标准选择的影响。可以使用调整兰德指数和轮廓系数等验证指标来评估聚类的质量。对参数的敏感性、大型数据集的可伸缩性以及稀疏数据可能出现的问题是其中一些挑战。

理解这些挑战对于有效利用谱聚类至关重要。一些解决特定问题并提高谱聚类对不同数据集类型的适用性的扩展是稀疏共聚类和包含归一化切割的变体。评估共聚类结果至关重要。可以使用标准的聚类验证度量来评估发现的聚类的质量和一致性。研究人员和从业人员可以使用各种机器学习包来实现谱聚类方法。

总之,谱聚类是一种有效的方法,可以揭示数据矩阵中的隐藏模式,并促进对数据集之间复杂关系的更好理解。由于其适应性和记录二维模式的能力,它可以用于广泛的领域,并为这些领域的知识扩展做出贡献。