sklearn.cluster.k_means

sklearn.cluster.k_means(X, n_clusters, *, sample_weight=None, init='k-means++', precompute_distances='deprecated', n_init=10, max_iter=300, verbose=False, tol=0.0001, random_state=None, copy_x=True, n_jobs='deprecated', algorithm='auto', return_n_iter=False)

[源码]

K-均值聚类算法。

用户指南中阅读更多内容。

参数 说明
X {array-like, sparse} matrix of shape (n_samples, n_features)
将聚类的观察值。必须注意的是,数据将转换为C顺序,如果给定的数据不是C-连续的,这将导致内存副本。
n_clusters int
要形成的簇数以及要生成的质心数。
sample_weight array-like of shape (n_samples,), default=None
X中每个观测值的权重。如果为None,则所有的观察都被赋予同等的权重。
init {‘k-means++’, ‘random’, ndarray, callable}, default=’k-means++’
初始化方法:
‘k-means++’:明智地选择初始聚类中心进行k均值聚类,加快收敛速度。有关详细信息,请参阅k_init中的Notes部分。

‘random’:从初始的数据中随机选择n_clusters个观察值。

如果一个ndarray被传递,它应该是形状的(n_clusters, n_features)并给出初始中心。

如果传递了一个可调用函数,它应该接受参数X、n_clusters 和 random state,并返回一个初始化。
precompute_distances {‘auto’, True, False}
预计算距离(速度更快,但占用更多内存)
‘auto’:如果n_samples * n_clusters>1,200万,不要预先计算距离。这相当于使用双精度的每个任务大约100 MB的开销。

True:总是预先计算距离

False:从不预先计算距离

自版本0.23起已弃用: 'precompute_distances'在版本0.23中已弃用,并将在0.25中删除。没有作用。
n_init int, default=10
k-均值算法将使用不同的质心种子运行的次数。最后的结果将是inertia方面n_init连续运行的最佳输出。
max_iter int, default=300
运行的k-均值算法的最大迭代次数。
verbose bool, default=False
详细模式
tol float, default=1e-4
相对容忍度与Frobenius范数, 连续两次迭代之间的聚类中心的差异声明收敛。不建议将其设置为tol=0,因为由于舍入错误,可能永远不会声明收敛。用一个很小的数字代替。
random_state int, RandomState instance, default=None 确定用于质心初始化的随机数生成。使用整数使随机性确定。见Glossary
copy_x bool, default=True
当预计算距离时,首先对数据进行中心化比较精确.如果copy_x为True(默认值),则不会修改原始数据。如果为False,则对原始数据进行修改,并在函数返回之前将其放回,但可以通过减去和添加数据均值来引入较小的数值差异。注意,如果原始数据不是C-contiguous的,即使copy_x为False,也会复制。如果原始数据稀疏,但不采用CSR格式,即使copy_x为false,也会复制。
n_jobs int, default=None
用于计算的OpenMP线程数。并行性是在主cython循环上按示例顺序进行的,该循环将每个样本分配到其最近的中心。

None-1意味着使用所有处理器。

从0.23版n_jobs开始不推荐使用*:从0.23版*开始不推荐使用,并将在0.25版中删除。
algorithm {“auto”, “full”, “elkan”}, default=”auto”
表示K-means要使用的算法。经典的EM式算法是“full”的。通过三角不等式,对于具有定义良好的簇的数据,“elkan”变化更为有效。但是,由于分配了一个额外的形状数组(n_samples, n_clusters),所以内存更多。
目前,“auto”(为向后兼容而保留)选择了“Elkan”,但它将来可能会改变,以获得更好的启发式。
return_n_iter bool, default=False
是否返回迭代次数
参数 说明
centroid ndarray of shape (n_clusters, n_features)
在k均值的最后一次迭代中发现的质心
label ndarray of shape (n_samples,)
label[i]是第i次观察到的质心最接近的代码或索引。
inertia float
inertia准则的最后值(训练集中所有观测到最近质心的平方距离之和)。
best_n_iter int
与最佳结果相对应的迭代次数。只有当return_n_iter被设置为True才会返回。