1

我经常使用 foreach 包在 R 中训练随机森林,我试图找到一个粗略的等价物来训练 adaboost 模型,但我遇到了如何组合结果的问题。randomForest 包具有“组合”功能,允许将多个 randomForest 对象组合成一个 RF 对象,是否有任何具有类似功能的增强包?我通常使用包 adabag,但我不知道如何组合输出的模型(或者是否有办法)。有没有人试过这个并想出一个解决方案?此代码段用于并行创建模型:

library(foreach)
library(adabag)
library(doMC)
library(rpart)

registerDoMC(4)

data(iris)

testADA <- foreach(mfinal = rep(5, 4), .combine = c, .packages = "adabag") %dopar% boosting(Species ~ ., data = iris, boos = TRUE, mfinal = mfinal, control = c(minsplit = 0, cp = 0.000001))

但后来我只是得到了一个模型列表而不是一个模型,我不知道如何组合它们。

4

1 回答 1

3

您可以使用插入符号包。这些例子可以在这里找到 - http://caret.r-forge.r-project.org/parallel.html

在您的情况下,它可能看起来像这样:

library(caret)
library(doMC)
registerDoMC(cores = 4)
model <- train(Species ~ ., data = iris, method = "ada")

“doMC”包在 Windows 上不起作用。或者,这里是 Windows 机器的解决方案:

library('doParallel')
cl <- makeCluster(4) #number of cores
registerDoParallel(cl)
model <- train(Species ~ ., data = iris, method = "ada")
stopCluster(cl)
于 2014-07-01T14:49:12.803 回答