2012-04-17 3 views
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 randomizations или только последнего дерева, что вычисленные в петле. Также, если я хочу отображать значения начальной загрузки на дереве, как я должен это делать?

Большое спасибо!

ответ

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.

+0

Его дает мне эту ошибку: Ошибка в match.fun (FUN): 'make.permuted.clust (test2_matrix)' не является функцией, символ или символ – DianaHelen

+0

Извините, функция в lapply не должна иметь аргумент. Теперь это исправлено. –

+0

Большое спасибо за вашу помощь! – DianaHelen

0

Возможно, вас заинтересует метод RandomForest, реализованный в пакете randomForest, который реализует как загрузку данных, так и разделяющих переменных и позволяет сохранять деревья и получать дерево консенсуса.

library(randomForest) 

The original random forest (in FORTRAN 77) developers site

The package manual

Смежные вопросы