obtains the best workflow for each time series based on a performance metric.

modeltime_wfs_multibestmodel(.table, .metric = NULL, .minimize = TRUE)

Arguments

.table

a tibble that comes from the output of the modeltime_wfs_multifit() or modeltime_wfs_multiforecast() functions. For the modeltime_wfs_multifit() function, the 'table_time' object must be selected from the output.

.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.

Value

a tibble, corresponds to the same tibble supplied in the '.table' parameter but with the selection of the best workflow for each series.

Examples

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.
#> 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]>