更新于 2026年7月21日

Kmeans#


术语解释#

K均值聚类(Kmeans Clustering) 是聚类算法中应用最为广泛、最经典的一种无监督学习算法。K均值聚类旨在将具有相似特征的样本点“聚”在一起形成簇(Cluster) 。其核心逻辑是利用欧氏距离作为相似性度量标准——距离越近,样本间的相似度越高,越有可能被划分到同一个簇中。

Kmeans聚类原理示意图
Kmeans聚类原理示意图

整个聚类过程是一个反复迭代的过程,具体分为4个步骤 :

  • 初始化:随机选择 K 个样本点作为初始簇中心。

  • 分配:计算每个样本点到这 K 个簇中心的距离,并将样本点划分到最近的簇中。

  • 更新:根据每个簇中现有的样本,重新计算(取平均值)每个簇的簇中心。

  • 循环:重复步骤2和3,直到簇中心不再发生变化(目标函数收敛)

更多相关内容可参见「第11.2节 Kmeans原理:聚类分析中的经典算法」 内容。


出现动机#

聚类算法的初衷是在没有真实标签(Ground Truth)的情况下,通过自我学习挖掘数据中潜藏的结构或空间分布特性。 Kmeans 出现的直接数学动机则是希望找到一个最优解,使得所有样本点到其对应簇中心的距离总和最小(即最小化目标函数),从而让同一簇内的样本尽可能接近,不同簇间的样本尽可能远离,这样在不需要正确标签的情况下便实现了对数据本身结构的挖掘。 相比于复杂的聚类方法,Kmeans 提供了一种计算效率高、逻辑简洁的手段来处理大量的多维特征数据。


优点缺点#

  • 优点:

    • 原理简洁直观:算法基于“近朱者赤”的逻辑,非常容易理解和实现。

    • 计算效率高:通过简单的距离计算和均值更新即可完成迭代,通常收敛速度较快。

    • 数学支撑稳固:其目标函数的求解过程可以借助于拉格朗日乘数法,具有严谨的数学推导基础。

    • 可扩展性强:它是许多改进算法(如 Kmeans++、加权 Kmeans)的基础,能够适应不同的优化需求。

  • 缺点:

    • 严重依赖初始值:Kmeans 对初始簇中心的选择非常敏感。如果初始点选得不理想(例如都在同一个簇内),算法极易陷入局部最优解,导致聚类结果错误。 「第11.5节 Kmeans++原理:聚类中心初始化策略」

    • K 值选取困难:算法要求预先指定簇的数量 K,但在实际场景中往往很难确定最佳 K 值,通常需要借助「肘部法或轮廓系数法」进行事后分析 。

    • 对异常值/噪声敏感:由于簇中心是基于样本均值计算的,个别偏离中心很远的异常点(Outliers)会显著拉动中心位置,导致聚类偏移。

    • 簇形状限制:Kmeans 假设簇是凸形或球形的,对于环形、长条形等非线性分布的异形数据处理效果很差(这类问题通常更适合使用 「DBSCAN 等基于密度的算法」)。

    • 对量纲敏感:如果不同特征维度的取值范围差异过大,距离计算会被数值大的维度主导,因此在聚类前通常需要进行「标准化处理」


术语别名#

  • Kmeans

  • K均值聚类

  • K聚类

相关术语#

  • Kmeans++ 聚类算法

  • WKmeans 聚类算法

  • DBSCAN

阅读 --

11.2 Kmeans聚类算法

在本节中,我们首先介绍了Kmeans聚类算法的基本思想以及如何使用sklearn来完成整个建模过程;然后介绍了Kmeans聚类算法的原理,即聚类的整个迭代过程,并对整个过程中的样本状态进行了可视化;最后简单介绍了K值的选取原则,这部分内容将 …

11.4 从零实现Kmeans聚类算法

通过11.3节内容的介绍,我们已经知道了Kmeans聚类算法中两个关键未知变量的计算公式,接下来需要完成的就是对其进行编码实现。在11.2.3节中我们介绍过,聚类算法的步骤主要分为4个步骤,其中其中第4个步骤为循环迭代过程,因此整个聚类过程 …