Skip to content

第 9 章 聚类

聚类是无监督学习的一种典型任务。训练数据没有标签,算法需要自动发现样本之间的分组结构。

9.1 无监督学习:简介

监督学习中,每个样本都有标签。无监督学习中,只有输入数据,没有正确答案。

聚类算法会把相似样本分到同一组。

常见应用:

  • 市场细分。
  • 社交网络分组。
  • 计算机集群组织。
  • 图像压缩。

9.2 K-均值算法

K-均值算法(K-means)需要先指定聚类数量 K

算法流程:

  1. 随机初始化 K 个聚类中心。
  2. 把每个样本分配给离它最近的聚类中心。
  3. 对每个簇,重新计算簇内样本均值作为新的聚类中心。
  4. 重复分配和更新,直到收敛。

分配步骤:

text
对每个样本,选择最近的聚类中心

更新步骤:

text
对每个簇,取簇内所有样本的平均值作为新中心

9.3 优化目标

K-均值最小化的是样本到所属聚类中心的平方距离之和。

J(c(1),,c(m),μ1,,μK)=1mi=1mx(i)μc(i)2

其中:

  • J 是 K-均值的代价函数。
  • m 是样本数量,K 是聚类数量。
  • x(i) 是第 i 个样本。
  • c(i) 是第 i 个样本所属的簇编号。
  • μk 是第 k 个聚类中心。

K-均值每一步都在降低或保持代价函数不变。

9.4 随机初始化

随机初始化会影响 K-均值结果,因为算法可能收敛到局部最优。

常见做法:

  1. 多次随机初始化。
  2. 每次运行 K-均值。
  3. 选择代价函数最小的一次结果。

通常当 K 较小时,多次随机初始化很有帮助。

9.5 选择聚类数

选择聚类数时常用肘部法(Elbow Method)。

选择 K 没有完全自动的标准。

肘部法则会画出 K 和代价函数的关系。如果曲线在某个位置明显变缓,这个位置可能是合适的 K

但很多时候曲线没有明显肘部,此时需要根据实际应用目标选择。

例如做 T 恤尺码分类时,K = 3 可以对应小、中、大,K = 5 可以对应更多尺码。

9.6 K-均值的局限

K-均值简单高效,但它有几个限制:

限制说明
需要预先指定 K聚类数往往需要试验或结合业务判断
对初始化敏感不同初始中心可能得到不同结果
偏好球形簇对细长形、环形等复杂结构效果不好
对异常值敏感极端样本可能明显影响聚类中心

因此聚类结果不能只看算法输出,还要结合可视化、业务解释和后续任务效果判断。

9.7 聚类和表示学习

无监督学习不只有聚类。降维、密度估计、自编码器、自监督学习都可以看成从无标签数据中发现结构。

深度学习中常见的表示学习,也是在学习更有用的特征空间。如果表示空间学得好,相似样本会更接近,聚类和检索都会更容易。

Powered by VitePress