K-Means算法

1. 介绍

K-Means算法是无监督的聚类方法,其思想很简单,对于给定的样本集,按照样本之间的距离大小,将样本集划分为K个簇。让簇内的点尽可能紧密的连在一起,而让簇间的距离尽量的大。

2. 流程

1)随机选择K个聚类的初始中心;
2)对任意一个样本点,求其到K个聚类中心的距离,将样本点归类到距离最小的中心的聚类,如此迭代n次;
3)每次迭代过程中,利用均值等方法更新各个聚类的中心点(质心);
4)对K个聚类中心,利用2,3步迭代更新后,如果位置点变化很小(可以设置阈值),则认为达到稳定状态,迭代结束,对不同的聚类块和聚类中心可选择不同的颜色标注。

3. 优点

  • 聚类效果较优。
  • 原理简单,实现容易,收敛速度快。
  • 算法的可解释度比较强。
  • 需要调整的参数较少,通常只需要调整簇数K。

4. 缺点

  • K值选取不好把握。
  • 对噪音和异常点比较敏感。
  • 采用迭代方法,得到的结果是局部最优。
  • 如果各隐含类别的数据不平衡,则聚类效果不佳

5. KNN vs K-Means

K-Means算法

6. 笔试题相关

  1. 需要指定簇的个数
  2. 不能自动识别簇的个数
  3. 对噪音和异常点敏感
  4. 聚类结果与中心点的初始化有关

7. 参考资料

机器学习之K均值(K-Means)算法