Я пытаюсь обучить нейронную сеть для прогнозирования оттока с нейронной сетью R. Вот код:R neuralnet пакет слишком медленный для миллионов записей
data <- read.csv('C:/PredictChurn.csv')
maxs <- apply(data, 2, max)
mins <- apply(data, 2, min)
scaled_temp <- as.data.frame(scale(data, center = mins, scale = maxs - mins))
scaled <- data
scaled[, -c(1)] <- scaled_temp[, -c(1)]
index <- sample(1:nrow(data),round(0.75*nrow(data)))
train_ <- scaled[index,]
test_ <- scaled[-index,]
library(neuralnet)
n <- names(train_[, -c(1)])
f <- as.formula(paste("CHURNED_F ~", paste(n[!n %in% "CHURNED_F"], collapse = " + ")))
nn <- neuralnet(f,data=train_,hidden=c(5),linear.output=F)
Он работает, как должно, однако при обучении с полным набором данных (в диапазоне миллионов строк) он просто занимает слишком много времени. Поэтому я знаю, что R по умолчанию однопоточный, поэтому я попытался исследовать, как распараллелить работу во всех ядрах. Возможно ли сделать эту функцию параллельно? Я пробовал различные пакеты без успеха.
Кто-нибудь мог это сделать? Это не должен быть пакет neuralnet, любое решение, которое позволяет мне тренировать нейронную сеть, будет работать.
Спасибо
мой ответ ниже полезным для Вас? –
Попробуйте использовать библиотеку BLAS в качестве бэкэнд, например, Intel MKL. – Patric