Zurück zu den Modellen
Transformer

FitInTransform

Transformer wrapper to delay fit to the transform phase.

In panel settings, e.g., time series classification, it can be preferable (or, necessary) to fit and transform on the test set, e.g., interpolate within the same series that interpolation parameters are being fitted on. FitInTransform can be used to wrap any transformer to ensure that fit and transform happen always on the same series, by delaying the fit to the transform batch.

Warning: The use of FitInTransform will typically not be useful, or can constitute a mistake (data leakage) when naively used in a forecasting setting.

Schnellstart

python
from sktime.transformations.compose import FitInTransform

estimator = FitInTransform(transformer, skip_inverse_transform=True)

Parameter(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.

Beispiele

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