k-均值聚类 k-Means Clustering

k-均值聚类是一种向量量化方法,早期被用于信号处理,目前主要作为一种聚类分析方法活跃于数据挖掘领域。

k-均值聚类的目的是将 n 个点划分至 k 个聚类中,使得每个点都属于最近的均值对应的聚类,并以此作为聚类标准,这类问题可理解为将一个数据空间划分为 Voronoicells 的问题,主要用于对二维数据点的聚类。

主要步骤

1. 选择 k 个点作为初始质点;

2. 重复步骤:

  • 将每个点派到最近的质心,形成 k 个簇;
  • 重新计算每个簇的质心;

3. 直到簇不发生变化或达到最大迭代次数。

距离度量和目标函数

考虑欧几里得距离的函数,以误差平方和作为聚类的目标函数。

优缺点

优点:k-means 算法是聚类问题的经典算法,该算法简单快速,对于大量数据有相对较高的算法效率,其较高的伸缩性通常作为局部最优结束算法。当簇是密集、圆形、团状时,且簇与簇之间的区别明显时,其聚类效果较好。

缺点:用户必须提前给出要生成的簇的数目 k;该算法对初始值敏感,不同的初始值会带来不同的聚类结果;对于噪声数据和孤立点数据敏感,少量数据会对平均值产生巨大影响。

参考来源

【1】k-平均算法-维基百科

【2】http://hometown.group/wp-content/uploads/2018/07/%E8%81%9A%E7%B1%BB.pdf