Python 选择初始中心的k-均值

Python 选择初始中心的k-均值,python,numpy,scikit-learn,k-means,Python,Numpy,Scikit Learn,K Means,我正在尝试用选定的初始质心进行k-means聚类。 上面说 要指定初始中心,请执行以下操作: init : {‘k-means++’, ‘random’ or an ndarray} 如果传递了ndarray,则其应为形状(n_簇,n_特征),并给出初始中心 我的Python代码: X = np.array([[-19.07480000, -8.536], [22.010800000,-10.9737], [12.659700000,

我正在尝试用选定的初始质心进行k-means聚类。 上面说 要指定初始中心,请执行以下操作:

init : {‘k-means++’, ‘random’ or an ndarray} 
如果传递了
ndarray
,则其应为形状(
n_簇
n_特征
),并给出初始中心

我的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)

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

KMeans的默认行为是使用不同的随机质心多次初始化算法(即。然后,随机初始化的数量由
n\u init=
参数()控制:

n_init:int,默认值:10

k-means算法在不同条件下运行的时间 质心种子。最终的结果将是最好的输出
n_init
惯性方面的连续运行

如果将数组作为
init=
参数传递,则使用数组中显式指定的质心仅执行一次初始化。您将收到
运行时警告
,因为您仍在传递默认值
n_init=10
(是源代码的相关行)

忽略此警告实际上完全可以,但如果
init=
参数是数组,则可以通过传递
n_init=1
使其完全消失