我想使用谱聚类在 python 中聚类一个图。
谱聚类是一种更通用的技术,不仅可以应用于图形,还可以应用于图像或任何类型的数据,但是,它被认为是一种特殊的 图形 聚类技术。遗憾的是,我在网上找不到 python 中的谱聚类图示例。
Scikit Learn 记录了两种谱聚类方法: SpectralClustering 和 spectral_clustering ,它们看起来不是别名。
这两种方法都提到它们可以用于图形,但没有提供具体说明。 用户指南也没有。我已经 向开发人员索取了这样的示例,但他们工作过度而没有得到它。
记录这一点的一个很好的网络是 空手道俱乐部网络。它 作为一种方法包含在 networkx 中。
我很想知道如何去做这件事。如果有人能帮我弄清楚,我可以将文档添加到 scikit learn 中。
笔记:
原文由 Alex Lenail 发布,翻译遵循 CC BY-SA 4.0 许可协议
没有太多的光谱聚类经验,只是通过文档(跳到最后查看结果!):
代码:
输出:
总体思路:
从 这里 介绍数据和任务:
使用 sklearn & spectral-clustering 来解决这个问题:
这 将归一化图形切割描述为:
听起来不错。所以我们创建邻接矩阵(
nx.to_numpy_matrix(G)
)并将参数affinity
设置为 _预先计算_(因为我们的邻接矩阵是我们预先计算的相似性度量)。编辑: 虽然对此不熟悉,但我寻找 要调整的参数 并找到 了 assign_labels :
所以尝试不太敏感的方法:
输出:
这与基本事实非常吻合!