scikit-learn 中的 SpectralClustering 与 spectral_clustering
SpectralClustering vs. spectral_clustering in scikit-learn
我注意到 sklearn.cluster 库中有两个不同的谱聚类函数:SpectralClustering and spectral_clustering。虽然它们在某些细节上有所不同,但两者都进行谱聚类并且它们的大部分参数重叠。我很困惑为什么sklearn中有两种如此相似的方法?
我注意到的一些差异:
在SpectralClustering中,参数affinity
同时接受字符串和数组;它的默认值为 'rbf'
;在spectral_clustering中只能是矩阵
SpectralClustering() 的工作方式类似于构造函数。它没有 return 任何东西,但有两个属性 affinity_matrix_
(您可以在调用 .fit() 后访问)和 labels_
。 spectral_clustering 是一种只有 return 标签的方法。
使用 SpectralClustering:
cluster=SpectralClustering().fit(X)
cluster.labels_
使用spectral_clustering:
labels=spectral_clustering(affinity_matrix)
尽管存在这些明显的差异,但我想知道这两种方法在基本方面是否存在差异。否则为什么有两种方法可以完成基本相同的事情?
你查看源代码了吗?
我希望 SpectralClustering
是命令式方法的面向对象包装器 spectral_clustering
。
我注意到 sklearn.cluster 库中有两个不同的谱聚类函数:SpectralClustering and spectral_clustering。虽然它们在某些细节上有所不同,但两者都进行谱聚类并且它们的大部分参数重叠。我很困惑为什么sklearn中有两种如此相似的方法?
我注意到的一些差异:
在SpectralClustering中,参数
affinity
同时接受字符串和数组;它的默认值为'rbf'
;在spectral_clustering中只能是矩阵SpectralClustering() 的工作方式类似于构造函数。它没有 return 任何东西,但有两个属性
affinity_matrix_
(您可以在调用 .fit() 后访问)和labels_
。 spectral_clustering 是一种只有 return 标签的方法。
使用 SpectralClustering:
cluster=SpectralClustering().fit(X)
cluster.labels_
使用spectral_clustering:
labels=spectral_clustering(affinity_matrix)
尽管存在这些明显的差异,但我想知道这两种方法在基本方面是否存在差异。否则为什么有两种方法可以完成基本相同的事情?
你查看源代码了吗?
我希望 SpectralClustering
是命令式方法的面向对象包装器 spectral_clustering
。