K均值算法

K均值算法是非常常用的一种聚类算法,用于将给定的样本集分成指定数目的聚类。具体算法如下:

  • 为每个聚类确定一个初始的聚类中心,这样k个聚类存在k个聚类中心
  • 将样本集中的每一个样本按照最小距离原则 分配到k个聚类中的某一个
  • 使用每个聚类中所有样本的均值作为新的聚类中心
  • 如果聚类中心有变化则重复2、3步直到聚类中心不再变化为止
  • 最后得到的k个聚类中心就是聚类的结果 

K均值算法是一种贪心算法,因而不一定能得到最优化结果,不过它是必定收敛的。
 
K均值算法的难点是如何 找到合适的K值,可行的办法之一是找到Schwarz Criterion的最小值来找到合适的K。

Distortion + λ(#parameters)logR = J + λmklogR
m=#dimensions k=#centers R=#records

发表评论

无觅相关文章插件,快速提升流量