Skip to content

第 13 章 聚类

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

13.1 无监督学习:简介

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

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

常见应用:

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

13.2 K-均值算法

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

算法流程:

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

分配步骤:

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

更新步骤:

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

13.3 优化目标

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

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

其中:

  • c^(i) 是第 i 个样本所属的簇编号。
  • mu_k 是第 k 个聚类中心。

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

13.4 随机初始化

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

常见做法:

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

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

13.5 选择聚类数

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

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

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

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

Powered by VitePress