← 返回目录

Chapter 20: K均值聚类

K-Means Clustering

簇内距离和最小,迭代求解

📖 本章概要

K均值聚类(K-Means Clustering)是最经典的无监督学习算法之一。 通过迭代优化,将数据划分为K个簇,使簇内距离平方和(SSE)最小。

20.1-20.3
原理与迭代过程
20.4
肘部法则选K
20.5
轮廓图选K
20.6
沃罗诺伊图

20.1-20.3 K均值聚类原理与迭代

🎯 核心思想

给定n个样本,K均值聚类将它们划分为K个簇C = {C₁, C₂, ..., Cₖ}。 每个簇用质心μₖ表示,优化目标是最小化簇内距离平方和(SSE)。

优化目标:
argmin Σₖ Σₓ∈Cₖ ||x - μₖ||²

🔄 算法流程

  1. 初始化:随机选择K个样本作为初始质心
  2. 分配簇:将每个样本分配到最近的质心
  3. 更新质心:计算每个簇的均值作为新质心
  4. 迭代:重复步骤2-3直到质心不再变化
🎯

K-Means迭代过程动画

观察质心如何逐步收敛到最优位置

迭代: 0 / 10
初始收敛

K-Means聚类可视化

Sepal length (cm)Sepal width (cm)

迭代状态

🎲 步骤0: 随机初始化质心
📈 算法步骤
  1. 随机初始化K个质心
  2. 计算每个点到质心的距离
  3. 将点分配到最近的质心
  4. 更新质心为簇内均值
  5. 重复2-4直到收敛

💡 关键观察:质心从随机位置出发,每次迭代都向各自簇的"中心"移动。 当质心位置不再显著变化时,算法收敛。 SSE(误差平方和)随迭代逐渐减小,表示聚类质量提升。 尝试调整K值观察不同簇数的聚类效果!

🔍 决策边界

欧氏距离:
d²(x, μₖ) = (x - μₖ)ᵀ(x - μₖ)
点到质心的距离,决定簇归属
中垂线边界:
决策边界为相邻质心的中垂线
边界上的点到两侧质心距离相等

20.4 肘部法则:选定最优K值

📐 SSE与K的关系

SSE (Sum of Squared Error,误差平方和)衡量簇内紧密度。 随着K增大,SSE单调递减;但在最优K值处,曲线出现明显"肘部"拐点。

SSE(K) = Σₖ₌₁ᴷ Σₓ∈Cₖ ||x - μₖ||²
📐

肘部法则 (Elbow Method)

确定最优聚类簇数K

当前K: 1
K=1K=10
当前SSE: 120.0

SSE vs K曲线(肘部图)

030609012012345678910SSE (误差平方和)簇数 KSSE=120

SSE变化率分析

📊 SSE下降趋势
🔍 为什么是"肘部"?
• K太小:簇内点分散,SSE大
• K太大:过度分割,计算复杂
• 肘部位置:SSE与复杂度平衡点
• 极端情况:K=n时SSE=0,但无意义

💡 肘部法则核心思想:观察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更全面的聚类质量指标。

簇内不相似度 aᵢ:
样本i到同簇其他样本的平均距离
aᵢ越小越好
簇间不相似度 bᵢ:
样本i到最近其他簇的平均距离
bᵢ越大越好
轮廓系数 sᵢ:
sᵢ = (bᵢ - aᵢ) / max(aᵢ, bᵢ)
sᵢ∈[-1, 1],越接近1越好
📊

轮廓分析 (Silhouette Analysis)

评估聚类质量的另一种方法

平均轮廓系数:0.4450
差 (-1)中 (0)好 (1)

轮廓图 (K=3)

平均值: 0.4450.00.20.40.60.81.0012

不同K值比较

K = 20.5200
2
簇数
0.40
最小值
0.79
最大值
K = 30.4450
3
簇数
0.40
最小值
0.75
最大值
✓ 最高平均轮廓系数
K = 40.4248
4
簇数
0.20
最小值
0.62
最大值
K = 50.4116
5
簇数
0.11
最小值
0.60
最大值
✅ 最佳选择
K=3 具有最高的平均轮廓系数 (0.445)
• 簇内紧密:样本到簇内其他样本距离小
• 簇间分离:不同簇之间距离大
• 轮廓宽度均匀:三个簇大小相当
🔍 如何解读
sᵢ > 0.5: 分类很好
0.2 < sᵢ < 0.5: 分类合理
sᵢ < 0.2: 可能分类不当
sᵢ < 0: 分类错误

💡 轮廓分析vs肘部法则:肘部法则基于SSE(误差),只考虑簇内紧密度;轮廓分析同时考虑簇内紧密度和簇间分离度, 是更全面的聚类质量评估指标。两种方法结合使用,可以更准确地确定最优K值。 对于鸢尾花数据,两种方法都指向K=3,恰好对应三个真实品种,验证了方法的有效性!

肘部法则 (SSE-based)

✓ 简单直观
✓ 只关注簇内紧密度
✗ 忽略簇间分离度
✗ 肘部位置可能不明显

轮廓分析 (全面评估)

✓ 同时考虑簇内和簇间
✓ 可视化每个样本分类质量
✓ 适用于复杂数据
○ 计算成本稍高

20.6 沃罗诺伊图:几何视角

🗺️ K-Means的几何本质

沃罗诺伊图(Voronoi Diagram)将平面分割成多个区域, 每个区域内的点到对应生成点的距离最小。 K-Means的决策边界正是沃罗诺伊图的边界!

生成点 ⟷ 质心
沃罗诺伊图的种子点对应簇质心μ
区域 ⟷ 簇
每个Voronoi区域对应一个簇C
边界 ⟷ 中垂线
区域边界是质心的中垂线
🗺️

沃罗诺伊图 (Voronoi Diagram)

K-Means决策边界的几何本质

沃罗诺伊图可视化

原理说明

🎯 沃罗诺伊图定义

给定平面上n个点(称为生成点或种子点), 沃罗诺伊图将平面分割成n个区域。

每个区域内的任意点到对应生成点的距离, 都小于到其他生成点的距离。

📐 中垂线构造
步骤1: 连接两个相邻生成点
步骤2: 找到连线的中点
步骤3: 过中点作垂线(中垂线)
结果: 中垂线即为区域边界
🔗 与K-Means关系
生成点 = 簇质心μ:
沃罗诺伊图的生成点对应K-Means的质心
区域 = 簇C:
每个沃罗诺伊区域对应一个簇
边界 = 决策边界:
中垂线即为K-Means的决策边界
K-Means本质上是在不断调整沃罗诺伊图的生成点位置, 使每个区域内的点到生成点距离平方和最小。
🌍 实际应用
• 地理信息: 最近设施搜索
• 计算几何: 空间分割算法
• 生物学: 细胞生长模拟
• 天文学: 星系分布分析
• 机器学习: 最近质心分类器

🗺️ 几何直觉:沃罗诺伊图揭示了K-Means的几何本质——用欧氏距离将空间分割成多个区域, 每个区域内的所有点都"最靠近"该区域的质心。 中垂线保证了边界上的点到两侧质心的距离相等,这正是K-Means决策边界的定义。 理解沃罗诺伊图,就理解了K-Means为什么能work,以及它的几何局限性 (只能产生凸区域,无法处理非凸簇)。

🔍 K-Means的局限性

✓ 适用场景:
  • 簇呈凸形(convex)分布
  • 簇大小相近
  • 簇密度相似
  • 数据量大、维度适中
✗ 局限性:
  • 无法处理非凸簇(如环形)
  • 对初始质心敏感
  • 需要预先指定K值
  • 仅支持欧氏距离(sklearn)

实践与扩展

📦 Scikit-learn实现

# 导入库
from sklearn.cluster import KMeans
# 创建并训练
kmeans = KMeans(n_clusters=3)
kmeans.fit(X)
# 预测和结果
labels = kmeans.predict(X)
centers = kmeans.cluster_centers_
sse = kmeans.inertia_

关键参数:
• n_clusters: 簇数K
• n_init: 初始化次数(默认10)
• max_iter: 最大迭代次数
• random_state: 随机种子

🚀 算法变体

•
K-Means++:
改进初始化策略,使质心分散
•
Mini-Batch K-Means:
用小批量数据,加快大数据集训练
•
K-Medoids:
质心从样本点选取,更robust
•
Fuzzy C-Means:
软聚类,样本可属于多个簇

📚 本章总结

核心概念

  • ✓ K-Means通过迭代优化簇内SSE
  • ✓ 决策边界为质心的中垂线
  • ✓ 肘部法则基于SSE选择K值
  • ✓ 轮廓分析全面评估聚类质量
  • ✓ 沃罗诺伊图揭示几何本质

关键公式

SSE = Σₖ Σₓ∈Cₖ ||x - μₖ||²
μₖ = (1/|Cₖ|) Σₓ∈Cₖ x
aᵢ = 平均(dᵢⱼ), j∈Cₖ
bᵢ = min 平均(dᵢⱼ), j∈Cₘ
sᵢ = (bᵢ - aᵢ) / max(aᵢ, bᵢ)

从降维到聚类:前19章学习了PCA、CCA、KPCA等降维方法(有监督); 从K-Means开始,进入无监督学习的聚类领域。 下一章将学习高斯混合模型(GMM),它是K-Means的概率化推广, 可以处理非凸簇和不同大小/密度的簇。