在上一篇中我们对k-means算法进行了简单地介绍,明确了k-means算法的优缺点,本章我们将介绍k-means算法的改进版本——k-means++算法,该算法是为解决k-means分类结果会受到初始点的选取而存在区别而提出的。
k-means++算法仅对k-means算法的初始点选择部分进行改进,改进后算法的初始质心选择思路为:
- 初始聚类中心之间的相互距离要尽可能的远;
- 假设已经选取了n个初始聚类中心(n < k),则在选取第 n+1 个聚类中心时,距离当前 n 个聚类中心越远的点会有更高的概率被选为第 n+1 个聚类中心
k-means++算法的步骤如下:
- 随机选择一个样本作为第一个聚类中心 c1;
- 计算每个样本与当前已有聚类中心的最短距离(即与最近一个聚类中心的距离),用 D(x)表示,这个值越大,表示被选取作为聚类中心的概率就越大;
k-means聚类算法的两个难点:
- 确定 k 值得大小
k 值的确定
样本聚类误差平方和,核心指标是SSE(Sum of the squared errors, 误差平方和)
其中,K是聚类数量,p是样本,