kmeans_plusplus#
- sklearn.cluster.kmeans_plusplus(X, n_clusters, *, sample_weight=None, x_squared_norms=None, random_state=None, n_local_trials=None)#
初始化 n_clusters 种子根据 k-means++。
Added in version 0.24.
- Parameters:
- X{array-like, sparse matrix} 形状为 (n_samples, n_features)
从中选择种子的数据。
- n_clustersint
要初始化的质心数量。
- sample_weightarray-like 形状为 (n_samples,), 默认=None
X
中每个观测值的权重。如果为None
,所有观测值被赋予相同的权重。如果init
是一个可调用对象或用户提供的数组,则忽略sample_weight
。Added in version 1.3.
- x_squared_normsarray-like 形状为 (n_samples,), 默认=None
每个数据点的欧几里得范数的平方。
- random_stateint 或 RandomState 实例, 默认=None
确定用于质心初始化的随机数生成。传递一个 int 以在多次函数调用中获得可重复的输出。 参见 Glossary 。
- n_local_trialsint, 默认=None
每个中心(第一个除外)的种子试验次数,其中减少惯性最多的一个被贪婪地选择。 设置为 None 以使试验次数取决于种子数量的对数(2+log(k)),这是推荐的设置。 设置为 1 禁用贪婪的聚类选择并恢复经验上表现较差的 vanilla k-means++ 算法。
- Returns:
- centersndarray 形状为 (n_clusters, n_features)
k-means 的初始中心。
- indicesndarray 形状为 (n_clusters,)
数据数组 X 中选定中心的索引位置。对于给定的索引和中心,X[index] = center。
Notes
选择初始聚类中心以加快 k-means 聚类的收敛速度。参见:Arthur, D. 和 Vassilvitskii, S. “k-means++: the advantages of careful seeding”. ACM-SIAM symposium on Discrete algorithms. 2007
Examples
>>> 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])
Gallery examples#
K-Means++ 初始化示例