【发布时间】:2016-04-24 00:01:29
【问题描述】:
我正在尝试使用 R 包神经网络训练一个用于预测客户流失的神经网络。代码如下:
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 默认是单线程的,所以我尝试研究如何将工作并行化到所有内核中。甚至可以并行执行此功能吗?我尝试了各种包都没有成功。
有人能做到吗? 它不一定是神经网络包,任何让我训练神经网络的解决方案都可以。
谢谢
【问题讨论】:
-
下面我的回答对你有帮助吗?
-
尝试使用 BLAS 库作为后端,例如 Intel MKL。
标签: r parallel-processing neural-network