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])