Como randomForest é uma coleção de carros independentes treinados em um subconjunto aleatório de recursos e registros, ele se presta à paralelização. A combine()
função no pacote randomForest unirá florestas treinadas independentemente. Aqui está um exemplo de brinquedo. Como afirma a resposta do @mpq, você não deve usar a notação de fórmula, mas passar um quadro de dados / matriz de variáveis e um vetor de resultados. Eu descaradamente tirei isso dos documentos.
library("doMC")
library("randomForest")
data(iris)
registerDoMC(4) #number of cores on the machine
darkAndScaryForest <- foreach(y=seq(10), .combine=combine ) %dopar% {
set.seed(y) # not really needed
rf <- randomForest(Species ~ ., iris, ntree=50, norm.votes=FALSE)
}
Passei a função de combinação randomForest para o parâmetro .combine de nome semelhante (que controla a função na saída do loop. O lado negativo é que você não obtém taxa de erro OOB ou importância tragicamente mais variável.
Editar:
Depois de reler o post, percebo que não falo nada sobre a questão dos 34 ou mais fatores. Uma resposta não-pensada poderia ser representá-los como variáveis binárias. Esse é cada fator uma coluna que é codificada com fator de nível 0/1 sobre sua presença / não presença. Ao fazer uma seleção de variáveis sobre fatores sem importância e removê-los, você pode impedir que o espaço do recurso fique muito grande.