在图中找到最佳聚类数

Posted

技术标签:

【中文标题】在图中找到最佳聚类数【英文标题】:Finding the optimal number of clusters in a graph 【发布时间】:2015-06-24 03:28:32 【问题描述】:

我在 matlab 中使用对称非负矩阵分解算法 (SYMNMF) 对图 G 进行聚类。输入为:

邻接矩阵 X 所需的簇数 K

我需要定义K如:

集群之间运行的边数尽可能少。

在给定图的邻接矩阵的情况下,我可以使用任何算法来找到最佳集群数吗?

【问题讨论】:

我不认为有专门针对 SYNNMF 的最佳聚类方法,更重要的是,聚类方法总是比特征提取方法更依赖于数据。聚类使 NMF 过程的数据更加稀疏,尝试 K-means,它应该可以很好地处理边缘,或者,尝试边缘检测并使用高斯(或高斯混合,如果你是高级的)来聚类。 你不能对不同的K值运行算法,然后看看哪个结果的“集群之间运行的边数”最少吗? A. Donda k=1 有 0,但无趣。 【参考方案1】:

应该可以改用k-means流行的弯头法

跨集群的边数应该随着 k 的增加而增加。在 k=1 时,所有边都在集群内。 ;-)

尝试不同的 k 值,并选择不会导致边缘丢失大幅增加的最大 k。

【讨论】:

逐渐增加k可能是一个解决方案。但这很耗时。无论如何我都会使用它,因为没有其他选择。

以上是关于在图中找到最佳聚类数的主要内容,如果未能解决你的问题,请参考以下文章

K-Means - 为啥最佳聚类数随轮廓分析而变化?

您使用啥方法来选择 k-means 和 EM 中的最佳聚类数?

层次聚类:确定最佳聚类数并统计描述聚类

R中的聚类分析:确定最佳聚类数

检索 R 中的最佳聚类数

第十四章聚类方法.14.2.4确定最佳聚类数