Resample Fails with Parnsip Fit Model that uses Inline Functions
mdancho84 opened this issue · 1 comments
mdancho84 commented
Full Example: https://github.com/wtmoreland3/reprex/blob/3915d45d424135d8ca27c8c607ffc9da70aa89bf/modeltime_resample_error
Models that have inline functions fail. Example:
model_fit_lm <- linear_reg() %>%
set_engine("lm") %>%
fit(
value ~ as.numeric(date) + month(date, label = TRUE),
data = training(splits)
)
Causes this error:
## > model_tbl_tuned_resamples <- submodels_tbl %>%
## + slice(c(5)) %>%
## + modeltime_fit_resamples(
## + resamples = resamples_tscv,
## + control = control_resamples(verbose = TRUE, allow_par = TRUE)
## + )
## -- Fitting Resamples --------------------------------------------
##
## * Model ID: 5 LM
## Error: No in-line functions should be used here; use steps to define baking actions.
## 0.03 sec elapsed
mdancho84 commented
Solution: Convert to a workflow
with recipe()
Example:
mod_lm <- linear_reg() %>%
set_engine("lm")
recipe_spec <- recipe(value ~ date, data = training(splits)) %>%
step_mutate(
date_num = as.numeric(date),
date_mon = month(date, label = TRUE)
) %>%
step_rm(date)
wflw_lm <- workflow() %>%
add_model(mod_lm) %>%
add_recipe(recipe_spec) %>%
fit(training(splits))
This succeeds:
# > modeltime_table(wflw_lm) %>%
# + modeltime_fit_resamples(
# + resamples = resamples_tscv,
# + control = control_resamples(verbose = TRUE, allow_par = TRUE)
# + )
# -- Fitting Resamples --------------------------------------------
#
# * Model ID: 1 LM
# i Slice1: preprocessor 1/1
# v Slice1: preprocessor 1/1
# i Slice1: preprocessor 1/1, model 1/1
# v Slice1: preprocessor 1/1, model 1/1
# i Slice1: preprocessor 1/1, model 1/1 (predictions)
# i Slice2: preprocessor 1/1
# v Slice2: preprocessor 1/1
# i Slice2: preprocessor 1/1, model 1/1
# v Slice2: preprocessor 1/1, model 1/1
# i Slice2: preprocessor 1/1, model 1/1 (predictions)
# i Slice3: preprocessor 1/1
# v Slice3: preprocessor 1/1
# i Slice3: preprocessor 1/1, model 1/1
# v Slice3: preprocessor 1/1, model 1/1
# i Slice3: preprocessor 1/1, model 1/1 (predictions)
# 1.37 sec elapsed
#
# # Modeltime Table
# # A tibble: 1 x 4
# .model_id .model .model_desc .resample_results
# <int> <list> <chr> <list>
# 1 1 <workflow> LM <rsmp[+]>