在scikit learning中的k-means中,如何选择初始质心?
随机吗?
如果我对同一数据运行几次,精度值会改变吗?
kmeans =KMeans(data , no of clusters)
答案 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均值算法进行操作
是的,由于初始化是随机的,并且收敛可以在局部最小值中找到,因此不同的初始化可能会得到不同的结果。