sklearn.cluster.KMeans 如何处理缺少质心(可用质心小于 n_clusters)的 init ndarray 参数?

How does sklearn.cluster.KMeans handle an init ndarray parameter with missing centroids (available centroids less than n_clusters)?

在 Python sklearn KMeans (see documentation) 中,我想知道将形状为 (n, n_features) 的 ndarray 传递给 init参数,当n<n_clusters

  1. 它是否丢弃给定的质心并开始 kmeans++ 初始化,这是 init 参数的默认选择? (PDF paper kmeans++) (How does Kmeans++ work)
  2. 它是否考虑给定的质心并使用 kmeans++ 相应地 填充剩余的质心?
  3. 它是否考虑给定的质心并使用随机值填充剩余的质心?

没想到这个方法returns在这种情况下没有警告。这就是为什么我需要知道它是如何管理它的。

如果你给它一个不匹配的 init 它会调整簇的数量,正如你从 source 中看到的那样。这没有记录在案,我认为这是一个错误。 我会建议修复它。