2
私はRとPython(Anaconda)の両方を使用しています。モデリングについては、Rは同じ操作にもっと時間がかかります。Rでの並列操作またはマルチスレッドの方法はありますか?機械学習でRの性能を向上させるには?
私はRとPython(Anaconda)の両方を使用しています。モデリングについては、Rは同じ操作にもっと時間がかかります。Rでの並列操作またはマルチスレッドの方法はありますか?機械学習でRの性能を向上させるには?
Rで機械学習アルゴリズムを使用する場合、並列化を可能にするライブラリをいくつか呼び出すことができます。下の例では、その違いは大きいです。
あなたはこの(「2」は、クラスタのあなたの数に依存することに注意してください)のようにそれらを呼び出すことができます。
library(doParallel)
cl <- makeCluster(2)
registerDoParallel(cl)
この例では、https://cran.r-project.org/web/packages/doParallel/vignettes/gettingstartedParallel.pdf
> x <- iris[which(iris[,5] != "setosa"), c(1,5)]
> trials <- 10000
> ptime <- system.time({
+ r <- foreach(icount(trials), .combine=cbind) %dopar% {
+ ind <- sample(100, 100, replace=TRUE)
+ result1 <- glm(x[ind,2]~x[ind,1], family=binomial(logit))
+ coefficients(result1)
+ }
+ })[3]
> ptime
から抽出され、よりもはるかに高速です
> stime <- system.time({
+ r <- foreach(icount(trials), .combine=cbind) %do% {
+ ind <- sample(100, 100, replace=TRUE)
+ result1 <- glm(x[ind,2]~x[ind,1], family=binomial(logit))
+ coefficients(result1)
+ }
+ })[3]
> stime