Advertisement
annstasi

doParallel

Nov 28th, 2022
2,027
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 0.87 KB | None | 1 0
  1. install.packages("pscl")
  2. install.packages("randomForest")
  3. install.packages("doParallel")
  4. library(pscl)
  5. library(randomForest)
  6. library(doParallel)
  7.  
  8. detectCores() # Проверяем, сколько ядер можем использовать
  9.  
  10. system.time({iris_rf <- randomForest(Species~.,data=iris,ntree=500,proximity=TRUE)})
  11. varImpPlot(iris_rf)
  12. importance(iris_rf)
  13. iris_rf
  14.  
  15. # Функция принимает на вход число ядер и возвращает время
  16. calc_time <- function(c){
  17.   registerDoParallel(cores = c)
  18.   t <- system.time({iris_rf2 <- foreach(ntree=rep(100,5), .combine=combine, .packages=c('randomForest',"pscl")) %dopar% randomForest(Species~.,data=iris,ntree=ntree,proximity=TRUE)})
  19.   print(t)
  20.   return(t[3])
  21. }
  22.  
  23. t1 <- sapply(1:5, calc_time)
  24. x1 <- c(1:5)
  25.  
  26. plot(x1, t1, type="o", xlab = "Число ядер", ylab= "Время")
  27.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement