首页 > 代码库 > 聚类 kmeans

聚类 kmeans

聚类:就是将一个对象的集合分成几个簇,每个簇之间的对象不相似,但是簇内对象相似。可以认为是“物以类聚”。

从这个简单的描述中,可以看出聚类的关键是如何度量对象间的相似性。较为常见的用于度量对象的相似度的方法有距离、密度等。

k-Means:

k-Means算法的核心思想是把n个数据对象划分为k个类(这k各类事先未知),使得划分后每个类中的数据点到该类中心的距离最小。即使J最小。

k-means算法流程:

  1. 输入:分类个数k,包含n个数据对象的数据集  
  2. 输出:k个聚类  
  3. (1)从n个数据对象中任意选取k个对象作为初始的聚类中心;  
  4. (2)分别计算每个对象到各个聚类中心的距离,把对象分配到距离最近的聚类中;  
  5. (3)所有对象分配完成后,重新计算k个聚类的中心;  (取各类别的均值)
  6. (4)与前一次计算得到的k个聚类中心比较(检测是否收敛),如果聚类中心发生变化(未收敛),转(2),否则聚类结束。