This post is Private. Only a writer or those who know its URL can access this post.

Rのparallelパッケージを使ってRandomForestを並列化

More than 1 year has passed since last update.

:arrow_forward: 通常と並列化の比較

:small_blue_diamond:通常のランダムフォレスト

library(randomForest)
library(kernlab)

data(spam)
set.seed(777)
system.time(fit.rf<-randomForest(type~.,data=spam,ntree=1000))
ユーザ システム 経過
21.584 0.213 21.919

:small_blue_diamond:並列化のランダムフォレスト

library(parallel)
cores<-detectCores()
cl<-makeCluster(cores,type="PSOCK")
invisible(clusterEvalQ(
    cl,{
        library(randomForest)
        library(kernlab)
        data(spam)
    }))
set.seed(123)
clusterSetRNGStream(cl)
print(system.time(res.pa<-parLapply(cl,rep(250,cores),function(ntree) randomForest(type~.,data=spam,ntree=ntree))))
ユーザ システム 経過
0.166 0.166 10.934

:arrow_forward: 並列化方法解説

Rのsnowパッケージを使ってrandomForestを並列化

  • クラスターの生成
cores<-detectCores()
cl<-makeCluster(cores,type="PSOCK")

参考資料

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.