Ускорение R скрипта с параллельной обработкой - PullRequest
0 голосов
/ 03 сентября 2018

Я использую пакет caret для тренировки на матрице 14x21. Приведенный ниже сценарий занимает 65 секунд, что ужасно медленно. Мне было интересно, есть ли какой-либо выигрыш в эффективности при использовании параллельных пакетов в R? ПК, на котором я выполняю код, имеет 16 ядер, но мне интересно, нужно ли мне вставлять% dopar% или какой-либо другой скрипт для повышения скорости.

library(caret)
library(foreach)  
library(parallel) 
library(doParallel)
library(ggplot2)

registerDoParallel(cores = 16) 
nCores <- detectCores(logical = FALSE)

# read data
Macro <- read.csv("P:/Earnest/Old/R/Input.csv")
x <- Macro[1:13,3:21]
x <- as.matrix(x)
x
y <- Macro[1:13,2:2]
y <- as.matrix(y)
y
t <- Macro[14:14,3:21]
t <- as.matrix(t)
t

#select trainControl

ctrl = trainControl(method = "cv", number = 5, repeats = 5, verboseIter = TRUE, savePredictions = TRUE)

methoda <- "randomGLM"

#round 1
fit <- caret::train(y = as.vector(y), 
                      x = x, 
                      method = methoda, 
                      trControl = ctrl,
                      preProc = c("center", "scale"))

a6 <- predict(fit ,t)
...