1

我正在尝试置换(仅按列)我的数据矩阵 1000 次,然后在“R”中进行层次聚类,因此在 1000 次随机化后我的数据上有最终的树。这就是我迷路的地方。我有这个循环

    for(i in 1:1000) 
    { 
    permuted <- test2_matrix[,sample(ncol(test2_matrix), 12, replace=TRUE)]; (this permutes my columns)
    d = dist(permuted, method = "euclidean", diag = FALSE, upper = FALSE, p = 2);
    clust = hclust(d, method = "complete", members=NULL);
    } 
    png (filename="cluster_dendrogram_bootstrap.png", width=1024, height=1024, pointsize=10) 
    plot(clust)

我不确定最终的树是 1000 次随机化之后的产物,还是只是它在循环中计算的最后一棵树。另外,如果我想在树上显示引导值,我应该怎么做?

非常感谢!!

4

2 回答 2

1

您的示例中的值clust确实是循环中计算的最终树。这是一种制作和保存矩阵的 1000 个排列的方法

make.permuted.clust <- function(i){ # this argument is not used
  permuted <- data.matrix[,sample(ncol(data.matrix), 12, replace=TRUE)]
  d <- dist(permuted, method = "euclidean", diag = FALSE, upper = FALSE, p = 2)
  clust <- hclust(d, method = "complete", members=NULL)
  clust # return value
}

all.clust <- lapply(1:1000, make.permuted.clust) # 1000 hclust trees

你的问题的第二部分应该在这里回答。

于 2012-04-17T11:24:03.357 回答
0

您可能对 randomForest 包中实现的 RandomForest 方法感兴趣,该方法实现了数据和拆分变量的引导,并允许您保存树并获得共识树。

library(randomForest)

原始随机森林(在 FORTRAN 77 中)开发者网站

包装手册

于 2012-04-17T12:52:46.290 回答