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