从hclust(层次聚类)对象

时间:2016-02-16 17:54:42

标签: r dendrogram hclust dendextend

我想计算一下我的聚类分析解决方案对实际距离得分的拟合程度。要做到这一点,我需要提取我正在聚类的刺激之间的距离。我知道在查看dendrogram时我可以提取距离,例如在5和-14之间是.219(它们连接的高度),但是有一种自动提取距离的方法hclust对象中的信息?

List of 7
 $ merge      : int [1:14, 1:2] -5 -1 -6 -4 -10 -2 1 -9 -12 -3 ...
 $ height     : num [1:14] 0.219 0.228 0.245 0.266 0.31 ...
 $ order      : int [1:15] 3 11 5 14 4 1 8 12 10 15 ...
 $ labels     : chr [1:15] "1" "2" "3" "4" ...
 $ method     : chr "ward.D"
 $ call       : language hclust(d = as.dist(full_naive_eucAll, diag = F, upper = F), method = "ward.D")
 $ dist.method: NULL
 - attr(*, "class")= chr "hclust"

1 个答案:

答案 0 :(得分:1)

是。 你在询问共生距离。

d_USArrests <- dist(USArrests)
hc <- hclust(d_USArrests, "ave")
par(mfrow = c(1,2))
plot(hc)
plot(cophenetic(hc) ~ d_USArrests)
cor(cophenetic(hc), d_USArrests)

enter image description here

同样的方法也可以应用于比较两个层次聚类方法,并在dendextend R package中实现(该函数确保两个距离矩阵被排序匹配)。例如:

# install.packages('dendextend')
library("dendextend")

d_USArrests <- dist(USArrests)
hc1 <- hclust(d_USArrests, "ave")
hc2 <- hclust(d_USArrests, "single")
cor_cophenetic(hc1, hc2)
#  0.587977