View source: R/nested_ensemble_average.R
ensemble_nested_average | R Documentation |
Creates an Ensemble Model using Mean/Median Averaging in the Modeltime Nested Forecasting Workflow.
ensemble_nested_average(
object,
type = c("mean", "median"),
keep_submodels = TRUE,
model_ids = NULL,
control = control_nested_fit()
)
object |
A nested modeltime object (inherits class |
type |
One of "mean" for mean averaging or "median" for median averaging |
keep_submodels |
Whether or not to keep the submodels in the nested modeltime table results |
model_ids |
A vector of id's ( |
control |
Controls various aspects of the ensembling process. See |
If we start with a nested modeltime table, we can add ensembles.
nested_modeltime_tbl # Nested Modeltime Table Trained on: .splits | Model Errors: [0] # A tibble: 2 x 5 id .actual_data .future_data .splits .modeltime_tables <fct> <list> <list> <list> <list> 1 1_1 <tibble [104 x 2]> <tibble [52 x 2]> <split [52|52]> <mdl_time_tbl [2 x 5]> 2 1_3 <tibble [104 x 2]> <tibble [52 x 2]> <split [52|52]> <mdl_time_tbl [2 x 5]>
An ensemble can be added to a Nested modeltime table.
ensem <- nested_modeltime_tbl %>% ensemble_nested_average( type = "mean", keep_submodels = TRUE, control = control_nested_fit(allow_par = FALSE, verbose = TRUE) )
We can then verify the model has been added.
ensem %>% extract_nested_modeltime_table()
This produces an ensemble .model_id 3, which is an ensemble of the first two models.
# A tibble: 4 x 6 id .model_id .model .model_desc .type .calibration_data <fct> <dbl> <list> <chr> <chr> <list> 1 1_1 1 <workflow> PROPHET Test <tibble [52 x 4]> 2 1_1 2 <workflow> XGBOOST Test <tibble [52 x 4]> 3 1_1 3 <ensemble [2]> ENSEMBLE (MEAN): 2 MODELS Test <tibble [52 x 4]>
Additional ensembles can be added by simply adding onto the nested modeltime table.
Notice that we make use of model_ids
to make sure it only uses model id's 1 and 2.
ensem_2 <- ensem %>% ensemble_nested_average( type = "median", keep_submodels = TRUE, model_ids = c(1,2), control = control_nested_fit(allow_par = FALSE, verbose = TRUE) )
This returns a 4th model that is a median ensemble of the first two models.
ensem_2 %>% extract_nested_modeltime_table() # A tibble: 4 x 6 id .model_id .model .model_desc .type .calibration_data <fct> <dbl> <list> <chr> <chr> <list> 1 1_1 1 <workflow> PROPHET Test <tibble [52 x 4]> 2 1_1 2 <workflow> XGBOOST Test <tibble [52 x 4]> 3 1_1 3 <ensemble [2]> ENSEMBLE (MEAN): 2 MODELS Test <tibble [52 x 4]> 4 1_1 4 <ensemble [2]> ENSEMBLE (MEDIAN): 2 MODELS Test <tibble [52 x 4]>
The nested modeltime table with an ensemble model added.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.