统计学习 k-means聚类

【k均值聚类】

问题:给定{Xi} i=1,2....n 进行聚类

输入:{X1,X2,....Xn}   簇的数目为k

算法流程:

  1. 初始化选择K个种子作为K个类簇的中心
  2. repeat
  3.       for each Xi   do
  4.             计算Xi到每个类簇中心的距离
  5.              将Xi指配到距离最近的类簇中
  6.       end for
  7.       根据类簇内的点,重新计算K个类簇中心
  8. 直到所有的类簇中心不再改变

流程图:

统计学习 k-means聚类

 

 

如何选择初始化K个种子?

很难正好选定的就是k个类簇的中心,常采用启发式的方法

选定一个类簇的中心,其它类簇的中心选定离已选定的类簇中心尽可能远

 

k-means方法的局限性:

当簇具有不同的大小、非球形、密度不同时,聚类效果不理想

克服方法:

  • 使用更大数量的簇
  • 几个小的簇表示一个真实的簇
  • 使用基于密度的方法

由于均值中心可能受离群点(脏数据)的影响,也可采用中位点作为簇的中心,其相对于均值,对脏数据不敏感


 

优点 局限性
经典的聚类方法,简单,快速 数据的扰动,可能造成划分到不同的簇
能处理大规模数据 假定各个簇类似于球形,实际可能不符合
当簇接近高斯分布,效果良好