K-means算法是一种基于样本间相似性度量的间接聚类方法。
此算法以K为参数,把N个对象分为K个簇,以使簇内具有较高的相似度,而且簇间的相似度较低。相似度的计算根据一个簇中对象的平均值来进行。
此算法的工作过程为:首先从N个数据对象任意选择K个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。
一般都采用均方差作为标准测度函数.K个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。
K-MEANS算法的具体流程如下:
1)从N个数据对象任意选择K个对象作为初始聚类中心;
2)根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离;并根据最小距离重新对相应对象进行划分;
3)重新计算每个(有变化)聚类的均值(中心对象)
4)重复2/3步直到满足既定的条件,算法结束。