【问题标题】:Extracting the tree structure in text from hclust in R从 R 中的 hclust 中提取文本中的树结构
【发布时间】:2012-06-23 01:53:27
【问题描述】:

在需求预测项目的范围内,我想确定对彼此相似的时间序列进行分组的最佳方法,以便我可以应用自上而下的预测算法。目前,我的关键问题是确定什么是适当的组以及这些组的适当层次结构是什么。在做了一些阅读之后,我相信动态时间扭曲可能会有所帮助。为了对此进行测试,我创建了一个小测试用例,但我面临一个问题,那就是我如何提取层次结构,例如文本树或类似的东西。我希望你们中的一个人能够进一步帮助我。

我创建了以下案例来展示我的目标。

sc2 <- read.table("http://dl.dropbox.com/u/9641130/R/hclust.data", header=F, sep="")
SampleLabels <- c("ID1", "ID2", "ID3", "ID4", "ID5", "ID6", "ID7", "ID8", "ID9", "ID10", "ID11", "ID12", "ID13", "ID14", "ID15")
distMatrix2 <- dist(sc2, method="DTW")
hc2 <- hclust(distMatrix2, method="average")
# show the visual tree
plot(hc2, labels=SampleLabels)

不知何故,我想以文本形式获取集群的名称和成员,以便我可以继续使用它。有人有想法吗?

谢谢!

【问题讨论】:

  • 据我了解,您需要选择要砍树的位置(numgroups)?然后使用以下内容获取分组:groups = cutree(hc2,k=numgroups)。这给了小组作业。不知道你还想要什么。

标签: r forecasting hierarchical-clustering hclust


【解决方案1】:

根据上面 cmets 中赛斯的回答,我得出了以下解决方案:

numgroups <- 5
groups <- cutree(hc2,k=numgroups)
LabelsAndGroups <- t(rbind(SampleLabels,groups)) # t is just to get a better overview when presenting the results here. 
LabelsAndGroups
      SampleLabels groups
 [1,] "ID1"        "1"   
 [2,] "ID2"        "1"   
 [3,] "ID3"        "2"   
 [4,] "ID4"        "1"   
 [5,] "ID5"        "3"   
 [6,] "ID6"        "4"   
 [7,] "ID7"        "1"   
 [8,] "ID8"        "4"   
 [9,] "ID9"        "5"   
[10,] "ID10"       "1"   
[11,] "ID11"       "2"   
[12,] "ID12"       "3"   
[13,] "ID13"       "4"   
[14,] "ID14"       "4"   
[15,] "ID15"       "1"   

【讨论】:

    【解决方案2】:

    您可以使用 dendrapply 和属性来访问树中的每个节点。

    【讨论】:

    • 如果您能提供一些示例代码来说明您想到的解决方案,那就太好了。这将有助于这个答案成为未来读者更好的资源。
    猜你喜欢
    • 2021-11-29
    • 1970-01-01
    • 1970-01-01
    • 2020-06-19
    • 2017-09-26
    • 2015-11-05
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    相关资源
    最近更新 更多