📖 本章概要
K均值聚类(K-Means Clustering)是最经典的无监督学习算法之一。 通过迭代优化,将数据划分为K个簇,使簇内距离平方和(SSE)最小。
原理与迭代过程
肘部法则选K
轮廓图选K
沃罗诺伊图
20.1-20.3 K均值聚类原理与迭代
🎯 核心思想
给定n个样本,K均值聚类将它们划分为K个簇C = {C₁, C₂, ..., Cₖ}。 每个簇用质心μₖ表示,优化目标是最小化簇内距离平方和(SSE)。
🔄 算法流程
- 初始化:随机选择K个样本作为初始质心
- 分配簇:将每个样本分配到最近的质心
- 更新质心:计算每个簇的均值作为新质心
- 迭代:重复步骤2-3直到质心不再变化
K-Means迭代过程动画
观察质心如何逐步收敛到最优位置
K-Means聚类可视化
迭代状态
- 随机初始化K个质心
- 计算每个点到质心的距离
- 将点分配到最近的质心
- 更新质心为簇内均值
- 重复2-4直到收敛
💡 关键观察:质心从随机位置出发,每次迭代都向各自簇的"中心"移动。 当质心位置不再显著变化时,算法收敛。 SSE(误差平方和)随迭代逐渐减小,表示聚类质量提升。 尝试调整K值观察不同簇数的聚类效果!
🔍 决策边界
d²(x, μₖ) = (x - μₖ)ᵀ(x - μₖ)
点到质心的距离,决定簇归属
决策边界为相邻质心的中垂线
边界上的点到两侧质心距离相等
20.4 肘部法则:选定最优K值
📐 SSE与K的关系
SSE (Sum of Squared Error,误差平方和)衡量簇内紧密度。 随着K增大,SSE单调递减;但在最优K值处,曲线出现明显"肘部"拐点。
肘部法则 (Elbow Method)
确定最优聚类簇数K
SSE vs K曲线(肘部图)
SSE变化率分析
📊 SSE下降趋势
🔍 为什么是"肘部"?
💡 肘部法则核心思想:观察SSE随K值增大的变化趋势。在"肘部"之前,增加K会显著降低SSE(聚类质量大幅提升); 在"肘部"之后,增加K带来的SSE降低越来越小(边际效益递减)。 "肘部"位置就是最优的K值,平衡了聚类质量和模型复杂度。 对于鸢尾花数据,K=3在肘部位置,恰好对应三个真实品种!
💡 为什么K=3是肘部?
- K<3:簇数太少,簇内点分散,SSE下降快
- K=3:SSE已显著下降,曲线出现拐点
- K>3:继续增加K,SSE下降缓慢,边际效益递减
- 极端K=n:每个点自成一簇,SSE=0但无意义
20.5 轮廓分析:全面评估聚类质量
📊 轮廓系数
轮廓系数同时考虑簇内紧密度和簇间分离度, 是比SSE更全面的聚类质量指标。
样本i到同簇其他样本的平均距离
aᵢ越小越好
样本i到最近其他簇的平均距离
bᵢ越大越好
sᵢ = (bᵢ - aᵢ) / max(aᵢ, bᵢ)
sᵢ∈[-1, 1],越接近1越好
轮廓分析 (Silhouette Analysis)
评估聚类质量的另一种方法
轮廓图 (K=3)
不同K值比较
✅ 最佳选择
🔍 如何解读
💡 轮廓分析vs肘部法则:肘部法则基于SSE(误差),只考虑簇内紧密度;轮廓分析同时考虑簇内紧密度和簇间分离度, 是更全面的聚类质量评估指标。两种方法结合使用,可以更准确地确定最优K值。 对于鸢尾花数据,两种方法都指向K=3,恰好对应三个真实品种,验证了方法的有效性!
肘部法则 (SSE-based)
✓ 简单直观
✓ 只关注簇内紧密度
✗ 忽略簇间分离度
✗ 肘部位置可能不明显
轮廓分析 (全面评估)
✓ 同时考虑簇内和簇间
✓ 可视化每个样本分类质量
✓ 适用于复杂数据
○ 计算成本稍高
20.6 沃罗诺伊图:几何视角
🗺️ K-Means的几何本质
沃罗诺伊图(Voronoi Diagram)将平面分割成多个区域, 每个区域内的点到对应生成点的距离最小。 K-Means的决策边界正是沃罗诺伊图的边界!
沃罗诺伊图的种子点对应簇质心μ
每个Voronoi区域对应一个簇C
区域边界是质心的中垂线
沃罗诺伊图 (Voronoi Diagram)
K-Means决策边界的几何本质
沃罗诺伊图可视化
原理说明
🎯 沃罗诺伊图定义
给定平面上n个点(称为生成点或种子点), 沃罗诺伊图将平面分割成n个区域。
每个区域内的任意点到对应生成点的距离, 都小于到其他生成点的距离。
📐 中垂线构造
🔗 与K-Means关系
沃罗诺伊图的生成点对应K-Means的质心
每个沃罗诺伊区域对应一个簇
中垂线即为K-Means的决策边界
🌍 实际应用
🗺️ 几何直觉:沃罗诺伊图揭示了K-Means的几何本质——用欧氏距离将空间分割成多个区域, 每个区域内的所有点都"最靠近"该区域的质心。 中垂线保证了边界上的点到两侧质心的距离相等,这正是K-Means决策边界的定义。 理解沃罗诺伊图,就理解了K-Means为什么能work,以及它的几何局限性 (只能产生凸区域,无法处理非凸簇)。
🔍 K-Means的局限性
- 簇呈凸形(convex)分布
- 簇大小相近
- 簇密度相似
- 数据量大、维度适中
- 无法处理非凸簇(如环形)
- 对初始质心敏感
- 需要预先指定K值
- 仅支持欧氏距离(sklearn)
实践与扩展
📦 Scikit-learn实现
关键参数:
• n_clusters: 簇数K
• n_init: 初始化次数(默认10)
• max_iter: 最大迭代次数
• random_state: 随机种子
🚀 算法变体
改进初始化策略,使质心分散
用小批量数据,加快大数据集训练
质心从样本点选取,更robust
软聚类,样本可属于多个簇
📚 本章总结
核心概念
- ✓ K-Means通过迭代优化簇内SSE
- ✓ 决策边界为质心的中垂线
- ✓ 肘部法则基于SSE选择K值
- ✓ 轮廓分析全面评估聚类质量
- ✓ 沃罗诺伊图揭示几何本质
关键公式
从降维到聚类:前19章学习了PCA、CCA、KPCA等降维方法(有监督); 从K-Means开始,进入无监督学习的聚类领域。 下一章将学习高斯混合模型(GMM),它是K-Means的概率化推广, 可以处理非凸簇和不同大小/密度的簇。