K-means算法在1967年由J.B.MacQueen提出,是一种基于划分的动态聚类算法,同时也是一种具有较大影响力的无监督学习算法。该算法的优点是思想简单易行,时间复杂性接近线性,对大规模数据的挖掘具有高效性和可伸缩性,在工况分类等领域中有着广泛的应用。
K-means算法的基本思想是:对一个包含样本数据的样本集进行分类,确定聚类数目K值后,随机选取K个样本作为初始聚类中心,根据相似性度量函数分别计算其它样本到K个聚类中心的距离,并将该未分类样本划分到与之最近的那个聚类中心所在的类中。对每个样本完成分类后,计算每一个类中所有样本数据的平均值作为新的聚类中心,重新划分聚类,直到聚类中心不再改变或者误差小于一定范围时,迭代结束。该算法在每一次迭代过程中,都需将每一个样本重新划分到新的类中。