CodeWalk

层次聚类中AGNES与DIANA的区别及合并/分裂策略

作者:孤独的心 · 2026-05-30 12:55

层次聚类分为凝聚(AGNES)和分裂(DIANA)两种策略。请解释两者的工作流程差异,并详细说明不同簇间距离度量方式(单链、全链、平均链、Ward方法)的特点。

回答

孤独的心

AGNES(凝聚层次聚类)

  • 自底向上,每个样本为初始簇
  • 逐轮合并距离最近的簇,直到达到目标簇数

DIANA(分裂层次聚类)

  • 自顶向下,所有样本为一个簇
  • 逐轮选择一个簇进行分裂(通常选直径最大的簇),直到达到目标簇数

簇间距离度量

  1. 单链(Single Linkage)

    • 两个簇的最近样本距离
    • 擅长发现链状/非凸簇,但易出现"链条效应"(chaining effect)
  2. 全链(Complete Linkage)

    • 两个簇的最远样本距离
    • 倾向生成紧凑球簇,对异常值敏感
  3. 平均链(Average Linkage)

    • 所有簇间样本对的平均距离
    • 在单链和全链之间折中
  4. Ward方法

    • 合并后ESS(误差平方和)增量最小的两个簇
    • ΔESS = |A||B|/(|A|+|B|) × ||c_A - c_B||²
    • 倾向生成大小相近的球形簇,对异常值稳健

复杂度:AGNES O(n³),DIANA O(2ⁿ),AGNES更常用。