我正在尝试在R中进行并行计算。我想训练一个逻辑岭模型,并且我的电脑有4个核心。我希望将我的数据集平均分成4份,使用每个核心训练模型(在训练数据上),并将每个核心的结果保存到单个向量中。问题是我不知道该如何做,目前我尝试使用foreach包来并行处理,但问题是每个核心都会看到相同的训练数据。以下是使用foreach包的代码(它不会拆分数据):
有没有想过如何将数据同时分成x个部分并并行训练模型?
library(ridge)
library(parallel)
library(foreach)
num_of_cores <- detectCores()
mydata <- read.csv("http://www.ats.ucla.edu/stat/data/binary.csv")
data_per_core <- floor(nrow(mydata)/num_of_cores)
result <- data.frame()
r <- foreach(icount(4), .combine = cbind) %dopar% {
result <- logisticRidge(admit~ gre + gpa + rank,data = mydata)
coefficients(result)
}
有没有想过如何将数据同时分成x个部分并并行训练模型?
parallel
和foreach
?或者你是否可以接受snowfall
解决方案? - David