Skip to content

PluginParamsForecaster

PluginParamsForecaster

class PluginParamsForecaster(param_est, forecaster, params=None, update_params=False)[source]

Plugs parameters from a parameter estimator into a forecaster.

In fit, first fits param_est to data passed:

  • y of fit is passed as the first arg to param_est.fit

  • X of fit is passed as the second arg, if param_est.fit has a second arg

  • fh of fit is passed as fh, if any remaining arg of param_est.fit is fh

Then, does forecaster.set_params with desired/selected parameters. Parameters of the fitted param_est are passed on to forecaster, from/to pairs are as specified by the params parameter of self, see below.

Then, fits forecaster to the data passed in fit.

After that, behaves identically to forecaster with those parameters set. update behaviour is controlled by the update_params parameter.

Example: param_est seasonality test to determine sp parameter; forecaster a forecaster with an sp parameter, e.g., ExponentialSmoothing.

Parameters:
param_estsktime estimator object with a fit method, inheriting from BaseEstimator

e.g., estimator inheriting from BaseParamFitter or forecaster this is a “blueprint” estimator, state does not change when fit is called

forecastersktime forecaster, i.e., estimator inheriting from BaseForecaster

this is a “blueprint” estimator, state does not change when fit is called

paramsNone, str, list of str, dict with str values/keys, optional, default=None

determines which parameters from param_est are plugged into forecaster where None: all parameters of param_est are plugged into forecaster only parameters present in both forecaster and param_est are plugged in list of str: parameters in the list are plugged into parameters of the same name only parameters present in both forecaster and param_est are plugged in str: considered as a one-element list of str with the string as single element dict: parameter with name of value is plugged into parameter with name of key only keys present in param_est and values in forecaster are plugged in

update_paramsbool, optional, default=False

whether fitted parameters by param_est_ are to be updated in self.update

Attributes:
param_est_sktime parameter estimator, clone of estimator in param_est

this clone is fitted in the pipeline when fit is called

forecaster_sktime forecaster, clone of forecaster

this clone is fitted in the pipeline when fit is called

param_map_dict

mapping of parameters from param_est_ to forecaster_ used in fit, after filtering for parameters present in both

Examples

>>> from sktime.datasets import load_airline
>>> from sktime.forecasting.naive import NaiveForecaster
>>> from sktime.param_est.plugin import PluginParamsForecaster
>>> from sktime.param_est.seasonality import SeasonalityACF
>>> from sktime.transformations.difference import Differencer
>>>
>>> y = load_airline()
>>>
>>> # sp_est is a seasonality estimator
>>> # ACF assumes stationarity so we concat with differencing first
>>> sp_est = Differencer() * SeasonalityACF()
>>>
>>> # fcst is a forecaster with a "sp" parameter which we want to tune
>>> fcst = NaiveForecaster()
>>>
>>> # sp_auto is auto-tuned via PluginParamsForecaster
>>> sp_auto = PluginParamsForecaster(sp_est, fcst)
>>>
>>> # fit sp_auto to data, predict, and inspect the tuned sp parameter
>>> sp_auto.fit(y, fh=[1, 2, 3])
PluginParamsForecaster(...)
>>> y_pred = sp_auto.predict()
>>> sp_auto.forecaster_.get_params()["sp"]
12
>>> # shorthand ways to specify sp_auto, via dunder, does the same
>>> sp_auto = sp_est * fcst
>>> # or entire pipeline in one go
>>> sp_auto = Differencer() * SeasonalityACF() * NaiveForecaster()

using dictionary to plug “foo” parameter into “sp”

>>> from sktime.param_est.fixed import FixedParams
>>> sp_plugin = PluginParamsForecaster(
...     FixedParams({"foo": 12}), NaiveForecaster(), params={"sp": "foo"}
... )

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 a dict of parameters values for this object.

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 composed of other BaseObjects.

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(**params)

Set the parameters of this object.

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.