Gap统计量如何确定最佳聚类数K?
Gap统计量(Gap Statistic)是一种自动确定最佳聚类数K的方法。请解释其核心思想(比较真实数据与参考分布)、计算步骤以及评判标准。
回答
专业代码师
Gap统计量核心思想: 比较真实数据的簇内离散度与均匀分布参考数据的簇内离散度,选择"差距最大化"的K。
计算步骤:
-
对候选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)
-
计算标准差:
sd_k = std(log(W*_{kb})) · √(1 + 1/B)
-
选择最佳K:
- 最小的K使得
Gap(k) ≥ Gap(k+1) - sd_{k+1} - 即选择使得Gap值不再显著增长之前的K
- 最小的K使得
关键细节:
- 参考分布通常对整个特征空间均匀采样(PCA对齐后采样更准确)
- 簇内离散度W_k = Σ_{r=1}^{k} (1/(2n_r)) Σ_{i,i'∈C_r} d_{ii'}
- 相比肘部法(手动找拐点),Gap统计量提供了统计显著性的判断依据
局限:计算量大(需对参考数据多次聚类)。