andフレームワークdplyr
を使用するようにアプローチを適応させることができます。グループ化/ネスト化、およびリストフレームを作成してワークフローの一部を保存する関数について説明します。tidyr
purrr
mutate
map
探しているテスト/トレーニングの分割は、フレームワーク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_mc
unnest
test
train
lm
モデルを各にマップし、train
それをに保存しますmodel
predict
関数をmodel
andにマップしtrain
、格納しますpred
rmse
関数をmodel
andセットにマップしtest
、エラーに格納します。
私よりもワークフローに精通しているユーザーがおそらくいるので、修正/詳細化してください。