如何解释凝聚系数 agnes() 函数?

数据挖掘 r 聚类
2021-09-16 04:20:40

如何解释集群包的 agnes() 函数中的凝聚系数?

例子:

res.agnes <- agnes(dataset,method = 'ward')  
res.agnes$ac  
0.934  
1个回答

不确定您是否面临具体问题。无论如何,这里有一个凝聚系数的定义,来自在数据中查找组:聚类分析简介

一般而言,AC 描述了通过群平均链接获得的聚类结构的强度。但是,当 n 增加时,AC 往往会变大,因此不应该用它来比较大小差异很大的数据集。

另外,如果你熟悉剪影,

AC 也可以与轮廓系数 (SC) 进行比较

乍一看,您得到的系数指向数据中非常合理的聚类结构,因为它接近于 1:系数取值从 0 到 1,它实际上是形成聚类的归一化长度的平均值. 也就是说,当您查看树状图时看到的长度。

评论后编辑:确实,我引用的书中的文本(“在数据中查找组......”)在我的复制粘贴中引用了组平均链接,这可能会产生误导。但是,系数指的是横幅(类似于一种更简单的或二进制树状图),并且仅验证聚类产生的结构,而与方法无关。

是对凝聚系数的另一个参考,没有参考所使用的​​方法(尽管当然总是在层次聚类的背景下)。

评论后编辑 2:我在下面解释了我对如何计算系数的理解,始终使用相同的参考。

系数的公式是

AC=1nil(i)

即 的平均值l(i),计算如下:

对于每个对象 i,我们查看包含其标签的行并在横幅上方或下方以 0-1 的比例测量其长度 I(i)。

虽然我无法制作 0-1 比例的情节,但这只是长度的标准化。

横幅是树状图的二进制表示,其中:

  • 在左侧,当所有对象在凝聚算法的初始阶段被分离时,横幅只是空白
  • 一旦 2 个对象聚集在同一个簇中,它们就会出现在横幅中
  • 由 x 轴上的l(i)点标记,其中对象聚集在一起,并且是图的水平条的长度

一个例子总是更清楚,实际上是同一本书中的类似例子。让我们想象一个 4 维空间中的 5 个对象;其中 4 个物体非常靠近,其中一个距离很远。

df <- data.frame("c1"=c(2, 2, 2, 2, 10), "c2"=c(2, 2, 2, 2, 10),
                 "c3"=c(2, 2, 2, 2, 10), "c4"=c(2, 2, 2, 2, 10))

让我们进行聚类,

library(cluster)
r <- agnes(df, method="ward")

横幅图实际上看起来有点难看: 横幅情节

但无论如何,在同一位置的 4 个对象在开始时连接成一个簇,第 5 个对象在距离 20 处。就个人而言,查看树状图要容易得多: 树状图

但是信息几乎相同。

现在进行 AC 计算。前 4 个对象的条形长度为 1(标准化),最后一个为 0,因此 AC 为 0.8:

> r$ac
[1] 0.8

在树状图中,应该想象条形图旋转了 90 度,它们从树的根部延伸到形成组的点。