16

これは、複数のモデルの学習に関する以前の質問へのフォロー アップです。

ユースケースは、被験者ごとに複数の観測があり、それぞれのモデルをトレーニングしたいというものです。これを行う方法については、 Hadley の優れたプレゼンテーションを参照してください。

要するに、これは次のように使用して行うことができdplyrますpurrr

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

したがって、モデルの構築は恥ずかしいほど並列タスクであるため、そのようなタスク用の使いやすい並列化メカニズム ( parallel など) があるかどうか疑問dplyrに思っていました。purrrmap

これらのライブラリが簡単な並列化を提供しない場合、従来の R 並列化ライブラリ ( など) を使用して実行できparallelますforeachか?

4

2 に答える 2

13

ここに完全性のための回答を追加するだけで、 Hadley のリポジトリからmultidplyrをインストールしてこれを実行する必要があります。詳細については、ビネットを参照してください。

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)
于 2016-10-13T11:00:55.340 に答える