andフレームワークdplyrを使用するようにアプローチを適応させることができます。グループ化/ネスト化、およびリストフレームを作成してワークフローの一部を保存する関数について説明します。tidyrpurrrmutatemap
探しているテスト/トレーニングの分割は、フレームワークmodelr内のモデリングを支援するために構築されたパッケージの一部ですpurrr。具体的にはcross_vmcおよびcross_vkfold関数。
(フレームワークを説明するためだけに)を使用したおもちゃの例mtcars。
library(dplyr)
library(tidyr)
library(purrr)
library(modelr)
analysis <- mtcars %>%
nest(-cyl) %>%
unnest(map(data, ~crossv_mc(.x, 1, test = 0.3))) %>%
mutate(model = map(train, ~lm(mpg ~ wt, data = .x))) %>%
mutate(pred = map2(model, train, predict)) %>%
mutate(error = map2_dbl(model, test, rmse))
これ:
- mtcars がかかります
dataによって呼び出されるリスト フレームにネストするcyl
- 各要素にマッピングし、 を使用しておよびリスト列を作成すること
dataにより、それぞれをトレーニング セットに分離します。crossv_mcunnesttesttrain
lmモデルを各にマップし、trainそれをに保存しますmodel
predict関数をmodelandにマップしtrain、格納しますpred
rmse関数をmodelandセットにマップしtest、エラーに格納します。
私よりもワークフローに精通しているユーザーがおそらくいるので、修正/詳細化してください。