第 13 章 聚类
聚类是无监督学习的一种典型任务。训练数据没有标签,算法需要自动发现样本之间的分组结构。
13.1 无监督学习:简介
监督学习中,每个样本都有标签。无监督学习中,只有输入数据,没有正确答案。
聚类算法会把相似样本分到同一组。
常见应用:
- 市场细分。
- 社交网络分组。
- 计算机集群组织。
- 图像压缩。
13.2 K-均值算法
K-均值算法需要先指定聚类数量 K。
算法流程:
- 随机初始化
K个聚类中心。 - 把每个样本分配给离它最近的聚类中心。
- 对每个簇,重新计算簇内样本均值作为新的聚类中心。
- 重复分配和更新,直到收敛。
分配步骤:
text
对每个样本,选择最近的聚类中心更新步骤:
text
对每个簇,取簇内所有样本的平均值作为新中心13.3 优化目标
K-均值最小化的是样本到所属聚类中心的平方距离之和。
其中:
c^(i)是第i个样本所属的簇编号。mu_k是第k个聚类中心。
K-均值每一步都在降低或保持代价函数不变。
13.4 随机初始化
随机初始化会影响 K-均值结果,因为算法可能收敛到局部最优。
常见做法:
- 多次随机初始化。
- 每次运行 K-均值。
- 选择代价函数最小的一次结果。
通常当 K 较小时,多次随机初始化很有帮助。
13.5 选择聚类数
选择 K 没有完全自动的标准。
肘部法则会画出 K 和代价函数的关系。如果曲线在某个位置明显变缓,这个位置可能是合适的 K。
但很多时候曲线没有明显肘部,此时需要根据实际应用目标选择。
例如做 T 恤尺码分类时,K = 3 可以对应小、中、大,K = 5 可以对应更多尺码。