2

次の例では、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})
4

2 に答える 2

6

これで問題は解決すると思います。

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")
于 2016-02-28T11:11:13.073 に答える