知识框架

聚类是无监督学习任务,目标是在无类别标记时按相似性把样本划分为簇。本章重点包括聚类性能度量、距离计算、k-means、LVQ、高斯混合聚类、DBSCAN 和层次聚类。

聚类任务与度量

给定无标记样本集

\[ D=\{\mathbf{x}_1,\mathbf{x}_2,\ldots,\mathbf{x}_m\}, \]

聚类算法将其划分为 $k$ 个不相交簇

\[ \mathcal{C}=\{C_1,C_2,\ldots,C_k\}. \]

分类使用已知标记训练模型;聚类没有标记,依赖距离、密度或分布假设发现结构。

外部指标

若有参考划分,可统计样本对关系:同簇同类 $a$、同簇异类 $b$、异簇同类 $c$、异簇异类 $d$。

\[ JC=\frac{a}{a+b+c}, \]
\[ FMI=\sqrt{\frac{a}{a+b}\cdot\frac{a}{a+c}}, \]
\[ RI=\frac{2(a+d)}{m(m-1)}. \]

内部指标

内部指标只使用样本和聚类结果。常见思想:簇内距离小、簇间距离大。DB 指数越小越好,Dunn 指数越大越好。

距离计算

闵可夫斯基距离:

\[ d_p(\mathbf{x},\mathbf{z})= \left(\sum_{j=1}^{d}|x_j-z_j|^p\right)^{1/p}. \]

特殊情形:

\[ p=1 \text{ 为曼哈顿距离},\qquad p=2 \text{ 为欧氏距离}. \]

马氏距离:

\[ d_{\mathbf{\Sigma}^{-1}}(\mathbf{x},\mathbf{z})= \sqrt{(\mathbf{x}-\mathbf{z})^\top\mathbf{\Sigma}^{-1}(\mathbf{x}-\mathbf{z})}. \]

无序离散属性可用 VDM,属性重要性不同可用加权距离。

k-means

k-means 最小化簇内平方误差:

\[ E=\sum_{\ell=1}^{k}\sum_{\mathbf{x}\in C_\ell} \|\mathbf{x}-\mathbf{\mu}_\ell\|_2^2. \]

算法步骤:

  1. 初始化 $k$ 个中心。
  2. 分配:把每个样本分到最近中心。
  3. 更新:令每个中心为对应簇样本均值。
  4. 重复直到中心或分配不再变化。

局限:需预设 $k$,对初始中心和异常点敏感,偏好球形、规模相近、密度相近的簇。

LVQ 与高斯混合聚类

LVQ 使用带类别标记的原型向量,按样本与原型的关系移动原型。

高斯混合模型假设数据由多个高斯成分混合生成:

\[ p(\mathbf{x})=\sum_{i=1}^{k}\alpha_i \mathcal{N}(\mathbf{x}\mid \mathbf{\mu}_i,\mathbf{\Sigma}_i), \qquad \sum_i \alpha_i=1. \]

责任度:

\[ \gamma_{ji}= \frac{\alpha_i\mathcal{N}(\mathbf{x}_j\mid \mathbf{\mu}_i,\mathbf{\Sigma}_i)} {\sum_{\ell=1}^{k}\alpha_\ell\mathcal{N}(\mathbf{x}_j\mid \mathbf{\mu}_\ell,\mathbf{\Sigma}_\ell)}. \]

EM 更新:

\[ \mathbf{\mu}_i=\frac{\sum_j\gamma_{ji}\mathbf{x}_j}{\sum_j\gamma_{ji}}, \]
\[ \mathbf{\Sigma}_i= \frac{\sum_j\gamma_{ji}(\mathbf{x}_j-\mathbf{\mu}_i)(\mathbf{x}_j-\mathbf{\mu}_i)^\top} {\sum_j\gamma_{ji}}, \]
\[ \alpha_i=\frac{1}{m}\sum_j\gamma_{ji}. \]

DBSCAN

核心概念:

  • $\epsilon$ 邻域:距离样本不超过 $\epsilon$ 的样本集合。
  • 核心对象:$\epsilon$ 邻域内样本数不少于 MinPts。
  • 密度直达、密度可达、密度相连:描述由核心对象扩展出的连通关系。

DBSCAN 从核心对象出发扩展簇,并把不能归入任何簇的点视为噪声。$\epsilon$ 太小会产生过多噪声,太大会合并簇;MinPts 太大也会使簇更难形成。

层次聚类

AGNES 是自底向上的凝聚层次聚类:

  1. 初始每个样本为一簇。
  2. 计算簇间距离。
  3. 合并距离最近的两簇。
  4. 更新距离矩阵,直到满足停止条件。

簇间距离可用最短距离、最长距离、平均距离。不同距离定义会影响合并顺序和聚类形状。

常见问法

  1. 给一维或二维数据和初始中心,手算 k-means 两轮迭代。
  2. 比较不同初始化方案,说明 k-means 对初始化敏感的原因。
  3. 给 GMM 参数和样本,计算各成分责任度和责任度比值。
  4. 解释高斯方差变大时责任度变化与重叠问题。
  5. 给 $\epsilon$ 和 MinPts,判断 DBSCAN 中核心点、边界点和噪声点。
  6. 根据距离矩阵执行层次聚类前几步。