Transformer
FitInTransform
Transformer wrapper to delay fit to the transform phase.
Quickstart
python
from sktime.transformations.compose import FitInTransform
estimator = FitInTransform(transformer, skip_inverse_transform=True)Parameters(2)
- transformerEstimator
- scikit-learn-like or sktime-like transformer to fit and apply to series.
- skip_inverse_transformbool
- The FitInTransform will skip inverse_transform by default, of the param skip_inverse_transform=False, then the inverse_transform is calculated by means of transformer.fit(X=X, y=y).inverse_transform(X=X, y=y) where transformer is the inner transformer. So the inner transformer is fitted on the inverse_transform data. This is required to have a non- state changing transform() method of FitInTransform.
Examples
>>> from sktime.datasets import load_longley
>>> from sktime.forecasting.naive import NaiveForecaster
>>> from sktime.forecasting.base import ForecastingHorizon
>>> from sktime.forecasting.compose import ForecastingPipeline
>>> from sktime.split import temporal_train_test_split
>>> from sktime.transformations.compose import FitInTransform
>>> from sktime.transformations.impute import Imputer
>>> y, X = load_longley ()
>>> y_train, y_test, X_train, X_test = temporal_train_test_split (y, X)
>>> fh = ForecastingHorizon (y_test. index, is_relative = False)
>>> # we want to fit the Imputer only on the predict (=transform) data.
>>> # note that NaiveForecaster can't use X data, this is just a show case.
>>> pipe = ForecastingPipeline (
... steps = [
... ("imputer", FitInTransform (Imputer (method = "mean"))),
... ("forecaster", NaiveForecaster ()),
... ]
... )
>>> pipe. fit (y_train, X_train) ForecastingPipeline(
... )
>>> y_pred = pipe. predict (fh = fh, X = X_test)