我应该如何解释 GAP 统计数据?

机器算法验证 聚类
2022-03-21 03:36:46

我使用 GAP 统计量来估计 R 中的 k 个集群。但是我不确定我是否能很好地解释它。在此处输入图像描述

从上图中,我假设我应该使用 3 个集群。

在此处输入图像描述

从第二个图中,我应该选择 6 个集群。它是对 GAP 统计量的正确解释吗?

我将不胜感激任何解释。

1个回答

要获得理想的聚类,您应该选择k这样您就可以最大化差距统计信息。这是 Tibshirani 等人给出的例子。(2001) 在他们的论文中,由具有 2 个聚类的人工数据形成的图。如您所见,2 显然是理想的k,因为差距统计量在k=2

差距统计

然而,在许多现实世界的数据集中,集群的定义并不明确,我们希望能够在最大化差距统计量和模型的简约性之间取得平衡。恰当的例子:OP 的第一张图片。如果我们单独最大化差距统计,那么我们应该选择具有 30 个(甚至更多!)集群的模型。假设那个情节只是继续增加,当然,结果就没那么有用了。所以 Tibshirani 建议使用1-standard-error方法:

选择集群大小k^成为最小的k这样Gap(k)Gap(k+1)sk+1.

这非正式地确定了差距统计数据的增长率开始“放缓”的点。

因此,在 OP 的第一张图片中,如果我们将红色误差线作为标准误差,那么 3 是最小的k满足这个标准:

注释图像 1

但是,对于 OP 的第二张图片,您会看到差距统计数据立即减少k>1. 所以第一个k满足 1-标准误差标准的是1. 这是情节的说法,数据不应该被聚集。

事实证明,还有其他方法可以选择最优k. R函数的默认方法clusGap,例如,总是搜索图的局部最大值,并选择最小的k在局部最大值的一个标准误差内。使用这种firstSEmax方法,我们将选择k=30k=19分别用于 OP 的图 1 和图 2。然而,正如我所说,这似乎受到复杂性问题的影响。

资料来源:Robert Tibshirani、Guenther Walther 和 Trevor Hastie(2001 年)。通过差距统计估计数据集中的集群数量。