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