简介
k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是,预将数据分为K组,则随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。
文章中使用的动画网站地址,限 pc: k-means算法动画
http://www.donghuasuanfa.com/platform/portal?pc=k-means
算法过程
算法目的是将数据分类。将相似的数据点分为一组。算法大致分为两个步骤:
一:聚类:先随机选取K个对象作为初始的聚类中心。然后计算每个对象与各个种子聚类中心之间的距离,把每个数据点分配给距离它最近的聚类中心。
二:聚类中心移动:计算所有归属此聚类中心的数据点的中心位置,然后将聚类中心向中心点靠近。
算法过程详解
示例:图1-1的中心位置的三个方框为聚类中心。屏幕上各个圆点为待分类的数据点。算法的目的是将图中相似的圆点进行聚类。
一:聚类
先随机选取K个对象作为初始的聚类中心。然后计算每个对象与各个种子聚类中心之间的距离,把每个数据点分配给距离它最近的聚类中心。
示例:计算图中的每个圆点和聚类中心的距离,然后比较圆点和各个聚类中心的距离。将圆点染色为与各个聚类中心距离最短的颜色。
图1-1中左上角的圆点和图中中心的三个聚类中心计算距离。由于左上角的圆点与红色的聚类中心较近,所以将左上角的圆点染色为红色。
二:聚类中心移动
二:聚类中心移动:计算所有归属此聚类中心的数据点的中心位置,然后将聚类中心向中心点靠近。
示例:如图1-3。计算所有被染为红色的圆点的中心点位置,然后将红色聚类中心移动到此位置。
算法结束
k-means算法重复上述一、二步骤。直到当没有(或最小数目)对象被重新分配给不同的聚类,则此次分类步骤结束。整体算法结束。