R/modeltime_wfs_multibestmodel.R
modeltime_wfs_multibestmodel.Rd
obtains the best workflow for each time series based on a performance metric.
modeltime_wfs_multibestmodel(.table, .metric = NULL, .minimize = TRUE)
.table | a tibble that comes from the output of the |
---|---|
.metric | a string of evaluation metric, the following symmetrical can be supplied: 'mae', 'mape','mase', 'smape','rmse','rsq'. |
.minimize | boolean (default = TRUE), TRUE if the error metric should be minimized, FALSE in order to maximize it. |
a tibble, corresponds to the same tibble supplied in the '.table' parameter but with the selection of the best workflow for each series.
library(dplyr) library(earth) df <- sknifedatar::emae_series datex <- '2020-02-01' df_emae <- df %>% dplyr::filter(date <= datex) %>% tidyr::nest(nested_column=-sector) %>% head(2) receta_base <- recipes::recipe(value ~ ., data = df %>% select(-sector)) mars <- parsnip::mars(mode = 'regression') %>% parsnip::set_engine('earth') wfsets <- workflowsets::workflow_set( preproc = list( R_date = receta_base), models = list(M_mars = mars), cross = TRUE) wfsets_fit <- modeltime_wfs_multifit(.wfs = wfsets, .prop = 0.8, serie = df_emae)#>#> ✓ Workflow training finished OK.#>#> ── 1 models fitted ♥ ───────────────────────────────────────────────────────────#>#> 0 models deleted x ──#>sknifedatar::modeltime_wfs_multibestmodel(.table = wfsets_fit$table_time, .metric = "rmse", .minimize = TRUE)#> # A tibble: 2 x 6 #> sector nested_column R_date_M_mars nested_model calibration best_model #> <chr> <list> <list> <list> <list> <list> #> 1 Comerc… <tibble [194 ×… <workflow> <model_time [1… <model_time … <int [1]> #> 2 Ensena… <tibble [194 ×… <workflow> <model_time [1… <model_time … <int [1]>