【问题标题】: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,但无趣。

标签: matlab graph cluster-analysis


【解决方案1】:

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

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

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

【讨论】:

  • 逐渐增加k可能是一个解决方案。但这很耗时。无论如何我都会使用它,因为没有其他选择。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-11
  • 2017-04-28
  • 1970-01-01
  • 2020-10-08
  • 2014-06-23
  • 1970-01-01
相关资源
最近更新 更多