在下面的示例中,我尝试使用 missForest 来估算缺失值。为了加快我使用 foreach 包的过程。我在其中使用了 100 棵树,然后将这些树传递给 missForest 函数。这是并行 missForest 的正确方法吗?
这是示例和我所做的:
library(foreach)
library(missForest)
data(iris)
iris.na <- iris
set.seed(111)
## artificially drop some data values.
for (i in 1:4) iris.na[sample(150, sample(20)), i] <- NA
set.seed(222)
system.time(rf <- foreach(ntree=100, .combine=combine,
.multicombine=TRUE,.packages='missForest') %dopar%
{ missForest(iris.na)$ximp})
最佳答案
我认为这应该可以解决您的问题。
library(doParallel)
library(missForest)
data(iris)
iris.na <- iris
set.seed(111)
## artificially drop some data values.
for (i in 1:4) iris.na[sample(150, sample(20)), i] <- NA
set.seed(222)
registerDoParallel(cores=3)
out <- missForest(iris.na, ntree = 100, parallelize = "forests")
关于r - 并行missForest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19642592/