【问题标题】:SpectralClustering vs. spectral_clustering in scikit-learnscikit-learn 中的 SpectralClustering 与 Spectral_clustering
【发布时间】:2019-09-04 07:26:14
【问题描述】:

我注意到 sklearn.cluster 库中有两个不同的谱聚类函数:SpectralClusteringspectral_clustering。尽管它们在某些细节上有所不同,但都进行了谱聚类,并且它们的大多数参数重叠。我很困惑为什么sklearn中有两种方法如此相似?

我注意到的一些差异:

  • 在 SpectralClustering 中,参数affinity 接受字符串和数组;它的默认值为'rbf';在spectral_clustering中它只能是一个矩阵

  • SpectralClustering() 像构造函数一样工作。它不返回任何内容,但有两个属性affinity_matrix_(您可以在调用.fit() 后访问)和labels_。 Spectrum_clustering 是一种只返回标签的方法。

使用 SpectralClustering:

cluster=SpectralClustering().fit(X)
cluster.labels_

使用spectral_clustering:

labels=spectral_clustering(affinity_matrix)

尽管存在这些明显的差异,但我想知道这两种方法是否在基本方面有所不同。否则为什么有两种方法可以完成基本相同的事情?

【问题讨论】:

    标签: python scikit-learn cluster-analysis


    【解决方案1】:

    你检查源代码了吗?

    我希望SpectralClustering 是命令式方法spectral_clustering 的面向对象包装器。

    【讨论】:

    • 谢谢你提醒我看源代码。你是绝对正确的。 SpectralClustering基本上是自己计算亲和矩阵,然后调用spectral_clustering(Affinity_Matrix)
    猜你喜欢
    • 1970-01-01
    • 2013-07-01
    • 2021-03-26
    • 2013-12-28
    • 2018-11-01
    • 2015-01-31
    • 2017-04-10
    • 2023-03-09
    相关资源
    最近更新 更多