【问题标题】:Extract distances from hclust (hierarchical clustering) object从 hclust(分层聚类)对象中提取距离
【发布时间】:2016-05-28 03:43:10
【问题描述】:

我想计算我的聚类分析解决方案与实际距离分数的匹配程度。为此,我需要提取我正在聚类的刺激之间的距离。我知道在查看dendrogram 时,我可以提取距离,例如 5 到 -14 之间的距离是 0.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"

【问题讨论】:

    标签: r dendrogram hclust dendextend


    【解决方案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)
    

    同样的方法也可以用于比较两种层次聚类方法,并在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
    

    【讨论】:

    • 是否有一个原因,共同距离是离散的(即许多值在 ~ 55、75、85、151,但中间没有?
    • 我要回答我自己的问题:这是因为共生距离只考虑了合并两个对象的链接的高度
    猜你喜欢
    • 2018-12-03
    • 2015-09-14
    • 2020-01-23
    • 1970-01-01
    • 2019-01-11
    • 2014-10-24
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    相关资源
    最近更新 更多