聚类算法

00:00
6 min Intermediate 2026/6/14

K-Means、DBSCAN、层次聚类原理与对比,聚类评估指标。

1. 聚类问题概述

聚类是将数据集划分为若干组(簇),使得同组内样本相似度高,不同组间相似度低。

1.1 聚类类型

类型说明代表
划分聚类预先指定K个簇K-Means
密度聚类基于密度连通性DBSCAN
层次聚类树状结构聚类Agglomerative
模型聚类假设数据由混合模型生成GMM
谱聚类基于图拉普拉斯Spectral

2. K-Means算法

2.1 算法流程

1. 随机选择K个初始质心 μ1, μ2, ..., μK
2. 重复:
   a. 分配: 将每个样本分配到最近质心
      c_i = argmin_k ||x_i - μ_k||²
   b. 更新: 重新计算每个簇的质心
      μ_k = (1/|C_k|) Σ_{x_i ∈ C_k} x_i
3. 直到质心不再变化或达到最大迭代次数

2.2 目标函数

最小化簇内平方和(WCSS)

2.3 K值选择

肘部法则(Elbow Method)

绘制 vs ,选择拐点处的

轮廓系数(Silhouette Score)

其中 为样本 到同簇其他样本的平均距离, 为样本 到最近其他簇的平均距离。

  • :聚类效果好
  • :簇边界重叠
  • :样本可能被分错簇

Gap Statistic

选择使 Gap 统计量最大的

2.4 K-Means++初始化

  1. 随机选择第一个质心
  2. 对于每个后续质心,以概率 选择
    • 到最近已选质心的距离
  3. 重复直到选出 个质心

效果:避免初始质心过于集中,加速收敛。

2.5 K-Means变体

变体改进适用场景
Mini-Batch K-Means小批量更新质心大规模数据
K-Medoids用实际样本点作为中心对异常值鲁棒
Fuzzy C-Means软聚类,样本属于多个簇重叠簇
K-Modes用众数代替均值类别数据

3. DBSCAN算法

3.1 核心概念

| 概念 | 定义 | | :------- | :---------------------------------------------------------------------------------- | ----------------------- | ------------------- | | ε-邻域 | | | 核心点 | | | 边界点 | 非核心点但在某核心点的ε-邻域内 | | 噪声点 | 既非核心点也非边界点 | | 密度直达 | 核心点p的ε-邻域内包含q | | 密度可达 | 通过核心点链可达 | | 密度相连 | 存在点o使p和q都从o密度可达 |

3.2 算法流程

1. 对每个未访问点p:
   a. 标记p为已访问
   b. 找到p的ε-邻域 N
   c. 如果 |N| < MinPts:
      - 标记p为噪声点
   d. 否则:
      - 创建新簇C
      - 扩展簇: 将N中所有点加入C
      - 对N中每个未访问点q:
        · 标记q为已访问
        · 找到q的ε-邻域N'
        · 如果 |N'| ≥ MinPts: 将N'加入N
        · 如果q未属于任何簇: 将q加入C

3.3 参数选择

ε选择:k-distance图

  • 计算每个点到其第k近邻的距离(
  • 按距离排序绘图
  • 选择”拐点”对应的距离作为ε

MinPts选择

通常取 为数据维度。

3.4 DBSCAN优缺点

优点缺点
无需指定簇数ε和MinPts敏感
发现任意形状不均匀时效果
自动识别噪声空间距离区分
不假设簇形状计算复杂 (可用KD树优化

4. 层次聚类

4.1 凝聚层次聚类

自底向上,逐步合并最近的簇:

初始: 每个样本一个簇

  ├── 合并最近的两个簇
  ├── 合并最近的两个簇
  ├── ...
  └── 所有样本合并为一个簇

4.2 簇间距离

方法定义
链接最近点距离发现链状结构,但可能链式效应
链接最远距离倾向紧凑球形簇
平均链接所有对平均距离折中方案
Ward方法合并后WCSS增量最小倾向等大小

Ward方法

4.3 树状图(Dendrogram)

          ┌───────┐
      ┌───┤       │
  ┌───┤   │       │
──┤   │   │       │
  A   B   C   D   E
  • 样本
  • 合并距离
  • 在指定度水平切割,得到对应数量的簇

5. 聚类评估

5.1 内部指标(无标签)

指标公式思想值域越大越好
轮廓系数簇内紧密 vs 簇间分离[-1, 1]
Calinski-Harabasz簇间方差/簇内方差[0, +∞)
Davies-Bouldin簇内散度/簇间距离比[0, +∞)

5.2 外部指标(有标签)

指标说明
Adjusted Rand Index调整兰德指数,
Normalized Mutual Info归一化互信息
Purity
V-measure同质性和完整性调和平均

知识检测

学习进度

-- 已学文档
--% 知识覆盖率

学习推荐

专注模式