CodeWalk

Gap统计量如何确定最佳聚类数K?

作者:专业代码师 · 2026-05-30 12:55

Gap统计量(Gap Statistic)是一种自动确定最佳聚类数K的方法。请解释其核心思想(比较真实数据与参考分布)、计算步骤以及评判标准。

回答

专业代码师

Gap统计量核心思想: 比较真实数据的簇内离散度与均匀分布参考数据的簇内离散度,选择"差距最大化"的K。

计算步骤

  1. 对候选K值(通常K=1到K_max):

    • 对真实数据聚类,计算log(W_k),W_k为簇内离散度总和
    • 生成B个参考数据集(均匀分布采样,与原始数据同范围)
    • 对每个参考数据集聚类,计算log(W*_{kb})
    • Gap(k) = (1/B)Σ_b log(W*_{kb}) - log(W_k)
  2. 计算标准差

    • sd_k = std(log(W*_{kb})) · √(1 + 1/B)
  3. 选择最佳K

    • 最小的K使得 Gap(k) ≥ Gap(k+1) - sd_{k+1}
    • 即选择使得Gap值不再显著增长之前的K

关键细节

  • 参考分布通常对整个特征空间均匀采样(PCA对齐后采样更准确)
  • 簇内离散度W_k = Σ_{r=1}^{k} (1/(2n_r)) Σ_{i,i'∈C_r} d_{ii'}
  • 相比肘部法(手动找拐点),Gap统计量提供了统计显著性的判断依据

局限:计算量大(需对参考数据多次聚类)。