mars.learn.cluster.k_means#
- mars.learn.cluster.k_means(X, n_clusters, sample_weight=None, init='k-means||', n_init=10, max_iter=300, verbose=False, tol=0.0001, random_state=None, copy_x=True, algorithm='auto', oversampling_factor=2, init_iter=5, return_n_iter=False)[来源]#
K均值聚类算法。
- Parameters
X (Tensor, shape (n_samples, n_features)) – 要进行聚类的观察数据。必须注意,如果给定的数据不是C连续的,数据将被转换为C顺序,这将导致内存复制。
n_clusters (int) – 要形成的簇的数量以及要生成的质心的数量。
sample_weight (类似数组, 形状 (样本数量,), 可选) – 每个观察值在 X 中的权重。如果为 None,则所有观察值被赋予相等的权重 (默认值: None)
init ({'k-means++', 'k-means'||', 'random', or tensor, or a callable}, optional) –
初始化方法,默认为‘k-means||’:
’k-means++’ : 以智能方式选择初始聚类中心,以加速收敛。有关更多详细信息,请参阅 k_init 中的说明部分。
’k-means||’: 可扩展的 k-means++。
’random’: 从数据中随机选择 k 个观测值(行)作为初始中心。
如果传入 ndarray,应该形状为 (n_clusters, n_features) 并提供初始中心。
如果传入可调用对象,它应该接受参数 X, k 和随机状态,并返回一个初始化。
n_init (int, 可选, 默认: 10) – k-means 算法将使用不同的质心种子运行的次数。最终结果将是 n_init 次连续运行中以惯性为准的最佳输出。
max_iter (int, 可选, 默认值 300) – k-means算法运行的最大迭代次数。
verbose (boolean, optional) – 详细模式。
tol (float, 可选) – 在声明收敛之前结果的相对增量。
random_state (int, RandomState 实例 或 None(默认)) – 决定质心初始化的随机数生成。使用一个整数可以使随机性确定性。 参见 术语表.
copy_x (bool, optional) – 在预计算距离时,首先对数据进行中心化会更具数值准确性。如果 copy_x 为 True(默认值),则原始数据不会被修改,确保 X 是 C-contiguous。如果为 False,原始数据将会被修改,并在函数返回之前恢复,但通过减去然后添加数据均值可能会引入小的数值差异,在这种情况下,也无法确保数据是 C-contiguous,这可能导致显著的性能下降。
算法 ("auto", "full" 或 "elkan", 默认="auto") – 要使用的K均值算法。经典的EM风格算法是“full”。 “elkan”变体通过使用三角不等式更高效,但目前不支持稀疏数据。“auto”对稠密数据选择“elkan”,对稀疏数据选择“full”。
oversampling_factor (int, default=2) – 仅适用于 kmeans||,在 kmeans|| 的每次迭代中使用。
init_iter (int, default=5) – 仅适用于kmeans||,指示所需的迭代次数。
return_n_iter (bool, 可选) – 是否返回迭代次数。
- Returns
centroid (具有形状 (k, n_features) 的浮点 ndarray) – 在 k-means 的最后一次迭代中找到的质心。
label (具有形状 (n_samples,) 的整数 ndarray) – label[i] 是第 i 个观测值离哪个质心最近的代码或索引。
inertia (浮点数) – 惯性准则的最终值(训练集中所有观测值到最近质心的平方距离之和)。
best_n_iter (整数) – 对应于最佳结果的迭代次数。仅当 return_n_iter 设置为 True 时返回。