• n_clusters:一个整数,指定分类簇的数量。

      • init:一个字符串,指定初始均值向量的策略。可以为:

        • 'k-means++':该初始化策略选择的初始均值向量相互之间都距离较远,它的效果较好。
        • 'random':从数据集中随机选择 个样本作为初始均值向量。
        • 或者提供一个数组,数组的形状为 (n_clusters,n_features),该数组作为初始均值向量。
      • n_init:一个整数,指定了k均值算法运行的次数。

        每次都会选择一组不同的初始化均值向量,最终算法会选择最佳的分类簇来作为最终的结果。

      • max_iter:一个整数,指定了单轮k均值算法中,最大的迭代次数。

        算法总的最大迭代次数为 max_iter * n_init

      • precompute_distances:指定是否提前计算距离。如果提前计算距离,则需要更多的内存,但是算法会运行的更快。

        可以为布尔值或者字符串 'auto'

        • 'auto':如果 n_samples*n_clusters > 12 million,则不提前计算。
        • True:总是提前计算。
        • False:总是不提前计算。
      • tol:指定收敛阈值。

      • verbose:指定开启/关闭迭代中间输出日志功能。

      • copy_x:布尔值,主要用于precompute_distances=True的情况。

        • 如果为,则预计算距离的时候,并不修改原始数据。
        • 如果为False,则预计算距离的时候,会修改原始数据用以节省内存;然后当算法结束的时候,会将原始数据还原。但是可能会因为浮点数的表示,会有一些精度误差。
      • algorithm:一个字符串,指定采用的算法。可以为:

        • 'full':使用经典的EM 风格的算法。
        • 'elkan':使用'elkan' 变种算法。它通过使用三角不等式来优化算法,但是不支持稀疏数据。
        • 'auto':自动选择算法。对于稀疏数据,使用'full';对于密集数据,使用'elkan'
    1. 属性:

      • cluster_centers_:一个形状为[n_clusters,n_features]的数组,给出分类簇的均值向量。
      • labels_:一个形状为[n_samples,] 的数组,给出了每个样本所属的簇的标记。
      • inertia_:一个浮点数,聚类平方误差 一、KMeans - 图1
      • n_iter_:一个整数,指定运行的迭代次数。
    2. 方法:

      • fit(X[,y ,sample_weight]):训练模型。
      • fit_predict(X[, y, sample_weight]):训练模型并执行聚类,返回每个样本所属的簇标记。
      • predict(X, sample_weight):返回每个样本所属的簇标记。
      • transform(X):将数据集 X 转换到cluster center space
      • score(X[, y, sample_weight]):一个浮点数,给出了聚类平方误差的相反数: 。

    1.2 MiniBatchKMeans

    1. MiniBatchKMeans是 提供的 批量k均值算法模型,其原型为:

      1. class sklearn.cluster.MiniBatchKMeans(n_clusters=8, init='k-means++',max_iter=300,
      2. batch_size=100, verbose=0, compute_labels=True,random_state=None,tol=0.0,
      3. max_no_improvement=10, init_size=None, n_init=3, reassignment_ratio=0.01)
      • batch_size:一个整数,指定batch 大小。

      • compute_labels:一个布尔值,指定当算法收敛时,是否对全量数据集重新计算其完整的簇标记。

      • tol:一个浮点数,指定收敛阈值。它可以用于早停。

      • max_no_improvement:一个整数,用于控制早停的轮数。如果优化目标在连续 max_no_improvementbatch 内没有改善时,执行早停。

        这里的优化目标不是聚类中心的变化,而是平方误差 一、KMeans - 图2

      • init_size:一个整数,为加速初始化而随机采样的样本数。通常是 3 倍的 batch_size

        它必须大于 n_clusters

      • n_init:一个整数,指定了初始化的尝试次数。

        KMeans 不同,MiniBatchKMeans 只会运行一轮(而不是多轮)。

      • reassignment_ratio:一个浮点数,控制每次迭代中最多有多少个簇中心被重新赋值。

        如果该值较大,则模型可能收敛可能时间更长,但是聚类效果也会更好。

      • 其他参数参考sklearn.cluster.KMeans

    2. 属性:参考sklearn.cluster.KMeans

      • 其它方法参考sklearn.cluster.KMeans