2016-07-07 23 views
10

这是关于学习多个模型的后续previous questionR - 并行化多模型学习(使用dplyr和purrr)

用例是我对每个主题都有多个观察值,并且我想为它们中的每个主题训练一个模型。关于如何做到这一点,请参阅哈德利的excellent presentation

总之,这是可能的使用dplypurr像这样的事:

library(purrr) 
library(dplyr) 
library(fitdistrplus) 
dt %>% 
    split(dt$subject_id) %>% 
    map(~ fitdist(.$observation, "norm")) 

如此以来,建立模型是一个尴尬的并行任务,我 想,如果dplyrpurrr有一个易于使用的这些任务的并行机制(如并行map)。

如果这些库不提供简单的并行化,可以使用经典的R并行化库(parallel,foreach等)来完成吗?

回答

11

只是增加了对完整性这里的答案,你需要从哈德利的回购安装multidplyr运行此,在vignette更多信息:

library(dplyr) 
library(multidplyr) 
library(purrr) 

cluster <- create_cluster(4) 
set_default_cluster(cluster) 
cluster_library(cluster, "fitdistrplus") 

# dt is a dataframe, subject_id identifies observations from each subject 
by_subject <- partition(dt, subject_id) 

fits <- by_subject %>% 
    do(fit = fitdist(.$observation, "norm"))) 

collected_fits <- collect(fits)$fit 
collected_summaries <- collected_fits %>% map(summary) 
相关问题