【问题标题】:Finding cluster centroid or ".means_" with sklearn.cluster.SpectralClustering使用 sklearn.cluster.SpectralClustering 查找簇质心或“.means_”
【发布时间】:2019-06-16 10:26:11
【问题描述】:

我有一个未标记的数据集,我正在尝试使用各种聚类算法对其进行聚类。

我成功地使用 .means_ 在 sklearn.mixture.GaussianMixture 中找到质心/“每个混合成分的平均值”。然后,在我的代码中,我将选取最接近于在每个集群中获得代表性样本的方法。

我想用 SpectralClustering 做同样的事情,但我没有看到“.means_”方法或某种方法来获取每个集群的质心。这可能是由于我对光谱聚类的工作原理有误解,或者只是这个库中缺少功能。

作为一个例子,我想做:

sc = SpectralClustering(n_components=10, n_init=100)
sc.fit(data)

closest, _ = pairwise_distances_argmin_min(sc.means_, data)

当然,SpectralClustering 没有 .means_ 方法。

感谢您对此的任何帮助。

【问题讨论】:

    标签: python machine-learning scikit-learn data-science


    【解决方案1】:

    光谱聚类(或任何其他聚类算法)是否使用聚类中心并不重要!

    您可以计算任何集群的质心!它是该集群中元素的均值(嗯,实际上存在一个约束,数据集本身允许均值的概念)。

    因此,使用光谱聚类计算聚类。对于每个集群,计算其中元素的平均值(即,由 m 个 n 维元素组成的集群的每个维度上的平均值)。

    【讨论】:

      【解决方案2】:

      质心用于 KMean 算法。对于光谱聚类,该算法仅存储亲和矩阵和从算法中获得的标签。

      【讨论】:

      • 谢谢。看起来缺乏对算法的理解。在做了更多的研究之后,亲和矩阵看起来就像一个直接的相似矩阵。我不完全确定如何以这种形式表示每个集群的“平均样本”。有点昂贵的东西可能是获取给定标签中的所有样本并将它们的每个值平均以产生“代表性”样本。我会继续思考的。
      猜你喜欢
      • 2017-10-07
      • 2021-06-13
      • 2012-11-03
      • 2018-08-19
      • 2012-11-17
      • 1970-01-01
      • 2021-04-04
      • 2021-03-03
      • 2013-09-29
      相关资源
      最近更新 更多