Scikit Learn中的KMeans集群

时间:2019-04-13 16:33:42

标签: python

在scikit learning中的k-means中,如何选择初始质心? 随机吗? 如果我对同一数据运行几次,精度值会改变吗? kmeans =KMeans(data , no of clusters)

1 个答案:

答案 0 :(得分:0)

scikit学习实现中的中心可以通过三种方式初始化:

  • k-means++用于加速收敛。
  • 随机
  • 用户定义

在第一种情况下,随机表示(来自k-means++ paper

  

通常的做法是从X中随机选择初始中心。

在第二种情况下,同样来自k-means++的k-means ++,他们选择质心为:

  

我们提出了一种选择k均值算法中心的特定方法。特别地,令D(x)表示从数据点到我们已经选择的最接近中心的最短距离。然后,定义以下算法,称为k-means ++。

     
      
  • 取一个中心c1,它是从X中随机选择的。
  •   
  • 采用一个新的中心c,以概率D(x)选择x∈X(请参阅参考资料)
  •   
  • 重复上一步骤,直到我们总共测量了k个中心。
  •   
  • 按照标准的k均值算法进行操作
  •   

是的,由于初始化是随机的,并且收敛可以在局部最小值中找到,因此不同的初始化可能会得到不同的结果。