K-means算法是机器学习经典算法之一,对于机器学习的初学者来说,最先接触的应该就是该算法,对于K-means算法思想都已经很熟悉了,本文主要介绍K-means聚类中心的初始化。
K-means算法对聚类中心的初始化比较敏感,不同的初始值会带来不同的聚类结果。在标准的K-means算法中,初始聚类中心采用随机采样方式,但是不能保证得到期望的聚类结果。为了获得较好的聚类结果,也可以采用多次随机初始聚类中心,然后对比分析聚类结果进行选择聚类中心,但却需要很多计算时间。
David Arthur提出的K-means++算法,能够有效产生聚类中心。K-means++算法:首先随机初始化一个聚类中心C={c1};然后通过迭代计算最大概率值:
其中d(x,C)为:
然后加入下一个聚类中心: