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才会返回。 |