1

此相似度矩阵中的值基于 Jaccards 系数:

    a,  b,  c
a,  1, .3, .6
b, .3,  1, .9
c, .6, .9,  1

为了生成聚类分析,我使用了以下代码:

tb = read.csv("c:\\Users\\Adrian\\Desktop\\sim-matrix.csv", row.names=1);
d  = as.dist(tb);
hclust(d);
plot(hclust(d, method="average"));

生成此树状图:

在此处输入图像描述

  • 为什么a&b组合在一起
  • 如何测量接近度?
  • 凝聚法是否对, &"average"的相应值进行平均 ?abc

?hclust不提供任何细节

4

2 回答 2

1

我不知道,是什么d = as.dist(tb);,但我认为hclust(d, method="average")假设d是一个距离矩阵。

为什么 a & b 组合在一起

如果您提供相似度矩阵,则 和 之间的低相似度被解释为低距离,因此是高相似度。这将解释为什么并首先分组。.3ab ab

亲密度如何衡量?

由于您提供了相似度矩阵,我认为您指的是在使用平均链接时如何测量集群的紧密度。假设第一点是适当的,平均链接(我认为在 hclust 中平均是 WPGMA)采用不同集群中所有观察值之间的平均相似性。让我们检查一下:

第 1 步:
平均相似度

  • a-b.3
  • a-c.6
  • c-b.9

所以我们合并ab.3

第 2 步:
平均相似度

  • ab-c(.6 + .9) / (2*1) = 1.5 / 2 = .75

所以合并ab-c应该在.75. 好吧,要么我的计算错误,要么树状图对应于完整的链接。

于 2014-02-13T13:18:33.850 回答
0

问题是你从来没有在任何时候对你的代码说这是一个相似度索引。其实你具体说反了:as.dist(d)hclust采用距离矩阵,即dissimilarity。最简单的方法是:

tb <- matrix(c(1,.3,.6,.3,1,.9,.6,.9,1),nrow=3)
tb <- 1-tb #Similarity to dissimilarity
d <- as.dist(tb)
plot(hclust(d))

当您测量 Jaccard 指数时,测量了接近度(如您所问)。

于 2014-02-13T13:15:02.510 回答