一、初始质心选择问题
在 K-Means 中有一个重要的环节,就是放置初始质心。如果有足够的时间, Kmeans 一定会收敛,但inertia(簇内误差平方和)可能收敛到局部最小值。是否能够收敛到真正的最小值很大程度上取决于质心的初始化。 init 就是用来帮助我们决定初始化方式的参数。
初始质心放置的位置不同,聚类的结果很可能也会不一样,一个好的质心选择可以让 K-Means 避免更多的计算,让算法收敛稳定且更快。为了优化选择初始质心的方法, 2007年Arthur, David, and Sergei Vassilvitskii三人发表了论文“kmeans++:The advantages of careful seeding”,他们开发了 ”k-means ++“初始化方案,使得初始质心(通常)彼此远离,以此来引导出比随机初始化更可靠的结果。
二、质心初始化参数init的说明
可输入"k-means++", "random"或者一个 n 维数组
(1)初始化质心的方法,默认"k-means++"
(2)输入"k-means++":一种为 K 均值聚类选择初始聚类中心的聪明的办法,以加速收敛。
(3)输入"random" 表示随机从训练数据中选取初始质心。
(4)如果输入了 n 维数组,数组的形状应该是(n_clusters, n_features)并给出初始质心