Skip to content

FallbackForecaster

FallbackForecaster

class FallbackForecaster(forecasters, verbose=False, nan_predict_policy='ignore')[source]

Forecaster that sequentially tries a list of forecasting models.

Attempts to fit the provided forecasters in the order they are given. If a forecaster fails during fitting or prediction, it proceeds to the next one. This class is useful in scenarios where the reliability of individual forecasting models may be in question, and a fallback mechanism is desired.

Parameters:
forecasterslist of forecasters, or

list of tuples (str, estimator) of sktime forecasters Forecasters to be tried sequentially. These are “blueprint” transformers resp forecasters, forecaster states do not change when fit is called

verbosebool, default=False

If True, raises warnings when a forecaster fails to fit or predict.

nan_predict_policy: str, default=’ignore’

Determines the action to take if NaN values are found in the predictions. Available options:

  • “ignore”

  • “raise”

  • “warn”

When set to ‘raise’, this policy treats NaN predictions as errors, prompting the FallbackForecaster to sequentially try the next forecaster in the queue. This process continues until a NaN-free prediction is obtained or all forecasters have been attempted, in which case the operation fails. Conversely, the ‘warn’ option alerts to the presence of NaNs in predictions with a warning, but does not alter the forecasting sequence. The default ‘ignore’ mode takes no action, permitting the forecasting process to proceed uninterrupted and without issuing warnings or errors, regardless of NaN occurrences in predictions.

Attributes:
forecasters_list of (str, estimator) tuples

The forecasters to be tried sequentially. Forecasters that have been fitted successfully are stored in this list.

first_nonfailing_forecaster_index_int

Index of the first non-failing forecaster in the list of forecasters.

current_forecaster_sktime forecaster

pointer to the first forecaster that was successfully fitted same as forecasters_[first_nonfailing_forecaster_index_][1]

current_name_str

name of the current forecaster same as forecasters_[first_nonfailing_forecaster_index_][0]

exceptions_raised_dict

dictionary of exceptions raised by forecasters during fitting or prediction keys are int indices of forecasters in the list of forecasters values are dicts with keys “failed_at_step”, “exception”, “forecaster_name” failed_at_step is either “fit” or “predict” exception is the exception raised by the forecaster forecaster_name is the name of the forecaster

Examples

>>> from sktime.forecasting.naive import NaiveForecaster
>>> from sktime.forecasting.compose import FallbackForecaster
>>> from sktime.forecasting.compose import EnsembleForecaster
>>> from sktime.forecasting.trend import PolynomialTrendForecaster
>>> from sktime.datasets import load_airline
>>> y = load_airline()
>>> # first fit polynomial trend, if fails make naive forecast
>>> forecasters = [
...     ("poly", PolynomialTrendForecaster()),
...     ("naive", NaiveForecaster())
... ]
>>> forecaster = FallbackForecaster(forecasters=forecasters)
>>> forecaster.fit(y=y, fh=[1, 2, 3])
FallbackForecaster(...)
>>> y_pred = forecaster.predict()

Methods

check_is_fitted([method_name])

Check if the estimator has been fitted.

clone()

Obtain a clone of the object with same hyper-parameters and config.

clone_tags(estimator[, tag_names])

Clone tags from another object as dynamic override.

create_test_instance([parameter_set])

Construct an instance of the class, using first test parameter set.

create_test_instances_and_names([parameter_set])

Create list of all test instances and a list of names for them.

fit(y[, X, fh])

Fit forecaster to training data.

fit_predict(y[, X, fh, X_pred])

Fit and forecast time series at future horizon.

get_class_tag(tag_name[, tag_value_default])

Get class tag value from class, with tag level inheritance from parents.

get_class_tags()

Get class tags from class, with tag level inheritance from parent classes.

get_config()

Get config flags for self.

get_fitted_params([deep])

Get fitted parameters.

get_param_defaults()

Get object's parameter defaults.

get_param_names([sort])

Get object's parameter names.

get_params([deep])

Get parameters of estimator.

get_pretrained_params([deep])

Get pretrained parameters of this estimator.

get_tag(tag_name[, tag_value_default, ...])

Get tag value from instance, with tag level inheritance and overrides.

get_tags()

Get tags from instance, with tag level inheritance and overrides.

get_test_params([parameter_set])

Return testing parameter settings for the estimator.

is_composite()

Check if the object is composite.

load_from_path(serial)

Load object from file location.

load_from_serial(serial)

Load object from serialized memory container.

predict([fh, X])

Forecast time series at future horizon.

predict_interval([fh, X, coverage])

Compute/return prediction interval forecasts.

predict_proba([fh, X, marginal])

Compute/return fully probabilistic forecasts.

predict_quantiles([fh, X, alpha])

Compute/return quantile forecasts.

predict_residuals([y, X])

Return residuals of time series forecasts.

predict_var([fh, X, cov])

Compute/return variance forecasts.

pretrain(y[, X, fh])

Pre-train forecaster on panel (global) data.

reset()

Reset the object to a clean post-init state.

save([path, serialization_format])

Save serialized self to bytes-like object or to (.zip) file.

score(y[, X, fh])

Scores forecast against ground truth, using MAPE (non-symmetric).

set_config(**config_dict)

Set config flags to given values.

set_params(**kwargs)

Set the parameters of estimator.

set_random_state([random_state, deep, ...])

Set random_state pseudo-random seed parameters for self.

set_tags(**tag_dict)

Set instance level tag overrides to given values.

update(y[, X, update_params])

Update cutoff value and, optionally, fitted parameters.

update_predict(y[, cv, X, update_params, ...])

Make predictions and update model iteratively over the test set.

update_predict_single([y, fh, X, update_params])

Update model with new data and make forecasts.