kmeans_plusplus#

sklearn.cluster.kmeans_plusplus(X, n_clusters, *, sample_weight=None, x_squared_norms=None, random_state=None, n_local_trials=None)[源代码]#

根据k-means++初始化 n_clusters 个种子。

0.24 版本新增。

参数:
X{类数组对象, 稀疏矩阵}, 形状为 (n_samples, n_features)

用于选择种子的数据。

n_clusters整型

要初始化的聚类中心数量。

sample_weight类数组对象, 形状为 (n_samples,), 默认值为 None

X 中每个观测值的权重。如果为 None,则所有观测值都被赋予相同的权重。如果 init 是可调用对象或用户提供的数组,则 sample_weight 将被忽略。

1.3 版本新增。

x_squared_norms类数组对象, 形状为 (n_samples,), 默认值为 None

每个数据点的平方欧几里德范数。

random_state整型或 RandomState 实例, 默认值为 None

确定聚类中心初始化的随机数生成。传入一个整数可使多次函数调用产生可复现的输出。参见 术语表

n_local_trials整型, 默认值为 None

每个聚类中心(第一个除外)的种子试次数量,其中贪婪地选择减少惯性最多的一个。设置为 None 可使试次数量与种子数量呈对数关系 (2+log(k)),这是推荐的设置。设置为 1 则禁用贪婪聚类选择,并恢复原始的 k-means++ 算法,该算法经经验证明不如其贪婪变体效果好。

返回:
centersndarray, 形状为 (n_clusters, n_features)

k-means 的初始聚类中心。

indicesndarray, 形状为 (n_clusters,)

在数据数组 X 中所选聚类中心的索引位置。对于给定的索引和聚类中心,X[index] = 聚类中心。

说明

以智能方式选择 k-means 聚类的初始聚类中心以加速收敛。参见:Arthur, D. 和 Vassilvitskii, S. “k-means++: the advantages of careful seeding”. ACM-SIAM 离散算法研讨会. 2007

示例

>>> from sklearn.cluster import kmeans_plusplus
>>> import numpy as np
>>> X = np.array([[1, 2], [1, 4], [1, 0],
...               [10, 2], [10, 4], [10, 0]])
>>> centers, indices = kmeans_plusplus(X, n_clusters=2, random_state=0)
>>> centers
array([[10,  2],
       [ 1,  0]])
>>> indices
array([3, 2])