Back to models
Transformer

MultiplexTransformer

Facilitate an AutoML based selection of the best transformer.

When used in combination with either TransformedTargetForecaster or ForecastingPipeline in combination with ForecastingGridSearchCV MultiplexTransformer provides a framework for transformer selection. Through selection of the appropriate pipeline (ie TransformedTargetForecaster vs ForecastingPipeline) the transformers in MultiplexTransformer will either be applied to exogenous data, or to the target data.

MultiplexTransformer delegates all transforming tasks (ie, calls to fit, transform, inverse_transform, and update) to a copy of the transformer in transformers whose name matches selected_transformer. All other transformers in transformers will be ignored.

Quickstart

python
from sktime.transformations.compose import MultiplexTransformer

estimator = MultiplexTransformer(transformers: list, selected_transformer=None)

Tags

Capabilities

  • Multivariate
  • Unequal-length series
  • Inverse transform: Not supported
  • Missing values: Not supported
  • Removes missing values: Not supported
  • Equalizes series length: Not supported

Properties

Input typescitype:transform-input
Series
Output typescitype:transform-output
Series
Label typescitype:transform-labels
None
Fit is emptyfit_is_empty
No
Keeps the time indextransform-returns-same-time-index
No
Requires Xrequires_X
Yes
Requires yrequires_y
No
X and y need the same indexX-y-must-have-same-index
No

Parameters(2)

transformerslist of sktime transformers, or
list of tuples (str, estimator) of named sktime transformers MultiplexTransformer can switch (“multiplex”) between these transformers. Note - all the transformers passed in “transformers” should be thought of as blueprints. Calling transformation functions on MultiplexTransformer will not change their state at all. - Rather a copy of each is created and this is what is updated.
selected_transformer: str or None, optional, Default=None.
If str, must be one of the transformer names.

If passed in transformers were unnamed then selected_transformer must coincide with auto-generated name strings. To inspect auto-generated name strings, call get_params.

Examples

>>> from sktime.datasets import load_shampoo_sales
>>> from sktime.forecasting.naive import NaiveForecaster
>>> from sktime.transformations.compose import MultiplexTransformer
>>> from sktime.transformations.impute import Imputer
>>> from sktime.forecasting.compose import TransformedTargetForecaster
>>> from sktime.forecasting.model_selection import ForecastingGridSearchCV
>>> from sktime.split import ExpandingWindowSplitter
>>> # create MultiplexTransformer:
>>> multiplexer = MultiplexTransformer (transformers = [
... ("impute_mean", Imputer (method = "mean", missing_values = - 1)),
... ("impute_near", Imputer (method = "nearest", missing_values = - 1)),
... ("impute_rand", Imputer (method = "random", missing_values = - 1))])
>>> cv = ExpandingWindowSplitter (
... initial_window = 24,
... step_length = 12,
... fh = [1, 2, 3 ])
>>> pipe = TransformedTargetForecaster (steps = [
... ("multiplex", multiplexer),
... ("forecaster", NaiveForecaster ())
... ])
>>> gscv = ForecastingGridSearchCV (
... cv = cv,
... param_grid = { "multiplex__selected_transformer":
... ["impute_mean", "impute_near", "impute_rand" ]},
... forecaster = pipe,
... )
>>> y = load_shampoo_sales ()
>>> # randomly make some of the values nans:
>>> y. loc [y. sample (frac = 0.1). index ] = - 1
>>> gscv = gscv. fit (y)