图的谱聚类

机器算法验证 聚类 数据挖掘 图论
2022-04-05 14:08:15

我正在尝试使用谱聚类对图进行聚类。但是我不知道数据中存在的类数量。将 PCA 应用于图的邻接矩阵以查找数据集中的实际聚类数是否是一个好主意?还有其他选择吗?

2个回答

找到正确数量的类的问题尚未解决,有很多方法可以解决这个问题。对于一般方法,您可以查看在 k-means 中找到 k 的问题。

在进行谱分析时,可以使用 eigengap 方法找到类数的良好近似值。它包括计算图拉普拉斯算子的连续有序特征值之间的差异。

如果说,第 4 和第 5 个特征值之间的差异与其他差异相比很大,那么图中很可能会有 4 个类。但是请注意,没有完美的方法来说明差异是否足够大。特别是,仅仅考虑最大的差异可能不会导致最好的分区。

一种常见的技术是考虑多个类别并执行多个 k-means(或任何其他聚类)。然后,根据一些外部措施,保持分区具有最高质量。

如果你使用 R 或 Python(甚至 C),你可以看看优秀的igraph包。特别是,看看这个包实现的各种社区检测算法。您讨论的内容与 Newman (2006) 的主要特征向量算法密切相关。这是介绍这个算法的论文,读起来很有趣。

一个好的策略是实现几个社区检测算法并聚合结果。这导致算法独立,更稳定和显着的结果。这是我为此目的编写的函数的链接。您可以使用的一种“外部措施”(如上面 P.-N. Mougel 所述)是模块化