совет по использованию dplyr :: do vs purrr: map, tidy :: nest, для прогнозов

Я только что наткнулся на пакет purrr, и я думаю, что это немного помогло бы мне с точки зрения того, что я хочу сделать - я просто не могу собрать его вместе.

Я думаю, что это будет сделано после публикации, но будет рассмотрен случай общего использования, я думаю, что многие другие сталкиваются с такой надеждой, что это также им пригодится.

Вот к чему я стремлюсь:

Из одного большого набора данных запустите несколько моделей в каждой из разных подгрупп.Сделайте эти модели легкодоступными, чтобы я мог их проверить - для коэффициентов, точности и т. Д.Из этого сохраненного списка моделей для каждой из различных групп можно применить соответствующую модель к соответствующей группе наборов тестов.
grouping_vals = c("cyl", "vs")

library(purrr)
library(dplyr)
set.seed(1)
train=mtcars
noise = sample(1:5,32, replace=TRUE) 
test = mtcars %>% mutate( hp = hp * noise) # just so dataset isn't identical


models = train %>% 
group_by_(grouping_vals) %>%
do(linear_model1 = lm(mpg ~hp, data=.),
   linear_model2 = lm(mpg ~., data=.)
)
Я дошел до этого далеко, но я не знаю, как «сопоставить» соответствующие модели с "тестовое заданиеmsgstr "набор данных для соответствующих сгруппированных значений.Теперь я также могу пытаться получить остатки от обучения linear_model1 или linear_model2 с данными обучения для соответствующих групп.

остатки модели $ linear_model1 [[2]] $ покажут мне остатки для 2-й группировки модели1. Я просто не знаю, как переместить все остатки моделей $ linear_model1 $ в набор данных поезда.

Насколько я понимаю, функция nid () tidyr делает то же самое, что и при создании моделей do ().

   models_with_nest =  train %>% 
     group_by_(grouping_vals) %>%
                   nest() %>%
     mutate( linear_model2 = purrr::map(data, ~lm(mpg~., data=.)),
             linear_model1 = purrr::map(data, ~lm(mpg~ hp+disp, data=.))
     )

Опять же, просто найдите способ легко «отобразить» эти остатки / прогнозы обучения на набор обучающих данных и применить, а затем применить соответствующую модель к невидимому тестовому набору данных, подобному тому, который я создал выше.

Я надеюсь, что это не сбивает с толку, так как я вижу много обещаний здесь, я просто не могу понять, как это собрать.

Я полагаю, что это задача, которую тонна людей хотела бы выполнить более «автоматизированным» способом, но вместо этого это то, что люди делают очень медленно и шаг за шагом.

Ответы на вопрос(1)

Ваш ответ на вопрос