随机化和分层树

时间:2012-04-17 10:54:46

标签: r hierarchical-clustering

我试图将我的数据矩阵(仅按列)置换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个随机化之后的产品还是仅仅是它在循环中计算的最后一棵树。另外如果我想在树上显示引导值,我应该怎么做呢?

非常感谢!!

2 个答案:

答案 0 :(得分: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

问题的第二部分应该回答here

答案 1 :(得分:0)

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

library(randomForest)

The original random forest (in FORTRAN 77) developers site

The package manual