KMeans

  1. n_clusters: 即k值,一般需要多试一些值以获得较好的聚类效果。
  2. max_iter: 最大的迭代次数,一般如果是凸数据集的话可以不管这个值,如果数据集不是凸的,可能很难收敛,此时可以指定最大的迭代次数让算法可以及时退出循环。
  3. n_init:用不同的初始化质心运行算法的次数。由于K-Means是结果受初始值影响的局部最优的迭代算法,因此需要多跑几次以选择一个较好的聚类效果,默认是10。如果k值较大,则可以适当增大这个值。
  4. init: 即初始值选择的方式,可以为完全随机选择’random’,优化过的’k-means++‘或者自己指定初始化的k个质心。一般建议使用默认的’k-means++’。
  5. algorithm:有“auto”, “full” or “elkan”三种选择。
    • “full”就是传统的K-Means算法
    • “elkan”是elkan K-Means算法
    • 默认"auto"则会根据数据值是否稀疏,来决定选择"full"和“elkan”。一般数据是稠密的,那么就是 “elkan”,否则就是"full"。

MiniBatchKMeans

无放回随机采样

  • n_init:MiniBatchKMeans类的n_init是每次用不一样的采样数据集来跑不同的初始化质心运行算法。
  • batch_size:即用来跑Mini Batch KMeans算法的采样集的大小,默认是100。如果发现数据集的类别较多或者噪音点较多,需要增加这个值以达到较好的聚类效果。
  • init_size: 用来做质心初始值候选的样本个数,默认是batch_size的3倍,一般用默认值就可以。
  • reassignment_ratio: 某个类别质心被重新赋值的最大次数比例。这个比例是占样本总数的比例,乘以样本总数就得到了每个类别质心可以重新赋值的次数。如果取值较高的话算法收敛时间可能会增加。默认是0.01。如果数据量不是超大的话,比如1w以下,建议使用默认值。
  • max_no_improvement:即连续多少个Mini Batch没有改善聚类效果,就停止算法,和reassignment_ratio, max_iter一样是为了控制算法运行时间。默认是10。

K值的评估标准

轮廓系数