k均值(kmeans)聚类是一种最为简单的聚类方法,直接根据数据点之间的距离(欧氏距离,几何距离等等)来划分数据是属于哪一类的,当所有数据点所属的类别不在变化的时候,聚类也就完成了。详细原理可索引下面一个博客:
聚类分析笔记-K均值matlab算法(一)
关于kmeans再谈几点认识:
- 重要的一点:聚类数目的问题。有的聚类、分类问题已经限制好了要聚类成几类,也就是聚类数目一定,那么这种聚类通常简单些,直接规定聚类数就好了。而有的聚类问题不知道分成几类才好,这个时候怎么办?那么就需要找到一种评价指标去评价聚类成多少类是最好的。比如说当聚类完了以后,可以计算一下类间的中心点的距离以及类内所有数据之间的距离和等等,作为判断标准,像DBI分类评价指标就是建立在这种基础上的。还有一种分类:减聚类分类,这也是在不知道分类数的时候进行的分类。
- 关于初始聚类中心的确定。Kmeans分类其实是具有收敛性的,所以初始聚类中心对其影响并不是很大,只要开始不相同就可以。因为在每次迭代完成以后,新的聚类中心是根据新划分类的所有点取平均而来的,所以不再受制于初始聚类中心。只是说聚类中心会影响迭代的次数,以当前计算机的速度,这点影响带来的耗时是可以不计的。
- 关于迭代终止条件。迭代终止条件可以有很多种,但是核心就是如何判定分类基本上已经收敛了,或者非常接近最优解,收敛不动了。一般情况下ÿ