此相似度矩阵中的值基于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"
是否平均a
,b
&的对应值。 c
? ?hclust
未提供任何详细信息
答案 0 :(得分:1)
我不知道d = as.dist(tb);
做了什么,但我认为hclust(d, method="average")
假定d
是距离矩阵。
为什么是& b紧密组合在一起
如果您提供相似度矩阵,则.3
与a
之间b
的低相似性会被解释为低距离因此具有很高的相似性。这可以解释为什么a
和b
首先被分组。
如何衡量亲密度?
由于您提供了相似性矩阵,我认为您指的是在使用平均链接时如何测量聚类的接近程度。假设第一点是合适的,平均连锁(我认为hclust平均值是WPGMA)取不同群集中所有观测值之间的平均相似性。让我们检查:
第1步: 平均相似度
a-b
:.3
a-c
:.6
c-b
:.9
所以我们在a
b
和.3
第2步: 平均相似度
ab-c
:(.6 + .9) / (2*1) = 1.5 / 2 = .75
因此合并ab-c
应位于.75
。好吧,无论是我的计算是错误的还是树形图对应于完全的联系。
答案 1 :(得分:0)
问题在于,您永远不会在任何时候对您的代码说这是相似性索引。事实上,你具体说相反:as.dist(d)
。 hclust
采用距离矩阵,i。即的相异度即可。最简单的方法是:
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指数时,测量了接近度(如您所知)。