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 时返回。