CodeWalk

K-Means聚类算法的数学原理与局限性

作者:我是大山 · 2026-05-30 12:55

K-Means是最常用的聚类算法之一。请从数学角度解释其算法流程、目标函数(SSE),并分析它的主要局限性及适用场景。

回答

我是大山

K-Means算法流程

  1. 随机初始化K个聚类中心
  2. 分配步骤:每个样本分配到最近的聚类中心(通常用欧氏距离)
  3. 更新步骤:计算每个簇的均值作为新的聚类中心
  4. 重复2-3直到收敛(中心点变化<阈值或达到最大迭代)

目标函数SSE = Σᵢ Σₓ ||x - μᵢ||² 即最小化各簇内样本到簇中心的距离平方和。

数学本质

  • K-Means是EM算法的特例(硬分配版本)
  • 假设各簇为球形且方差相等

主要局限性

  1. 需预设K值:通常用肘部法、轮廓系数、Gap统计量估计
  2. 对初始中心敏感:可用K-Means++改善
  3. 只能发现球形簇:无法处理非凸形状、大小差异大的簇
  4. 对异常值敏感:均值受异常点影响大
  5. 仅适用于数值型数据:需预先标准化

适用场景:数据量大、簇形状近球形、特征维度不高的场景。