我有大量随机森林的训练数据(暗淡:47600811*9)。我想获取多个(假设 1000)维度为 10000*9 的自举样本(每次运行中获取 9000 个负类和 1000 个正类数据点)并迭代地为所有这些树生成树,然后将所有这些树组合成 1 个森林。下面给出了所需代码的粗略概念。有人可以指导我如何从我的实际 trainData 生成随机样本并以最佳方式迭代地为它们生成树吗?这将是很大的帮助。谢谢
library(doSNOW)
library(randomForest)
cl <- makeCluster(8)
registerDoSNOW(cl)
for (i=1:1000){
B <- 1000
U <- 9000
dataB <- trainData[sample(which(trainData$class == "B"), B,replace=TRUE),]
dataU <- trainData[sample(which(trainData$class == "U"), U,replace=TRUE),]
subset <- rbind(dataB, dataU)
我不确定这是否是从实际 trainData 一次又一次(1000 次)生成子集的最佳方式。
rf <- foreach(ntree=rep(125, 8), .packages='randomForest') %dopar% {
randomForest(subset[,-1], subset$class, ntree=ntree)
}
}
crf <- do.call('combine', rf)
print(crf)
stopCluster(cl)