具有选定初始中心的 k 均值

Posted

技术标签:

【中文标题】具有选定初始中心的 k 均值【英文标题】:k-means with selected initial centers 【发布时间】:2015-05-05 21:45:11 【问题描述】:

我正在尝试使用选定的初始质心进行 k 均值聚类。 它说here 指定您的初始中心:

init : ‘k-means++’, ‘random’ or an ndarray 

如果传递了ndarray,它应该是形状(n_clustersn_features)并给出初始中心。

我的 Python 代码:

X = np.array([[-19.07480000,  -8.536],
              [22.010800000,-10.9737],
              [12.659700000,19.2601]], np.float64)
km = KMeans(n_clusters=3,init=X).fit(data)
# print km
centers = km.cluster_centers_
print centers

返回错误:

RuntimeWarning: Explicit initial center position passed: performing only one init in k-means instead of n_init=10
  n_jobs=self.n_jobs)

并返回相同的初始中心。知道如何形成初始中心以便可以接受吗?

【问题讨论】:

【参考方案1】:

KMeans 的默认行为是使用不同的随机质心(即Forgy method)多次初始化算法。然后随机初始化的次数由n_init=参数(docs)控制:

n_init :整数,默认值:10

k-means 算法将以不同的方式运行的次数 质心种子。最终的结果将是最好的输出 n_init 惯性连续运行。

如果您将数组作为init= 参数传递,那么只有单个 初始化将使用数组中明确指定的质心执行。你得到一个RuntimeWarning,因为你仍然传递n_init=10的默认值(here是相关的源代码行)。

忽略此警告实际上完全没问题,但如果您的 init= 参数是一个数组,您可以通过传递 n_init=1 使其完全消失。

【讨论】:

以上是关于具有选定初始中心的 k 均值的主要内容,如果未能解决你的问题,请参考以下文章

k均值算法

为啥我的spss k均值聚类系统自动选择的初始聚类中心每次都一样

谁能告诉我SPSS中的K聚类分析怎么人为指定初始的聚类中心呢?内有截图,求大神告诉我怎么设置。

机器学习K均值算法(II)

k 表示聚类算法

K均值算法-python实现