Back to models
Transformer

TabularToSeriesAdaptor

Adapt scikit-learn transformation interface to time series setting.

This is useful for applying scikit-learn tabular transformations to series, but only works with transformations that do not require multiple instances for fitting.

The adaptor behaves as follows.

If fit_in_transform = False and X is a series (pd.DataFrame, pd.Series, np.ndarray):

  • fit(X) fits a clone of transformer to X (considered as a table)

  • transform(X) applies transformer.transform to X and returns the result

  • inverse_transform(X) applies transformer.inverse_transform to X

If fit_in_transform = True and X is a series (pd.DataFrame, pd.Series, np.ndarray):

  • fit is empty

  • transform(X) applies transformer.fit(X).transform(X) to X, considered as a table, and returns the result

  • inverse_transform(X) applies transformer.fit(X).inverse_transform(X) to X

If fit_in_transform = False, and X is of a panel/hierarchical type:
  • fit(X) fits a clone of transformer for each individual series x in X

  • transform(X) applies transform(x) of the clone belonging to x (where the index of x in transform equals the index of x in fit), for each individual series x in X, and returns the result

  • inverse_transform(X) applies transform(x) of the clone belonging to x (where the index of x in transform equals the index of x in fit), for each individual series x in X, and returns the result

  • Note: instances indices in transform/inverse_transform must be equal to those seen in fit

If fit_in_transform = True, and X is of a panel/hierarchical type:
  • fit is empty

  • transform(X) applies transformer.fit(x).transform(x) to all individual series x in X and returns the result

  • inverse_transform(X) applies transformer.fit(x).inverse_transform(x) to all individual series x in X and returns the result

WARNING: if fit_in_transform is set to False,

when applied to Panel or Hierarchical data, the resulting transformer will identify individual series in test set with series indices in training set, on which instances were fit in particular, transform will not work if number of instances and indices of instances in transform are different from those in fit

WARNING: if fit_in_transform is set to True,

then each series in the test set will be transformed as batch by fit-predict, this may cause information leakage in a forecasting setting (but not in a time series classification/regression/clustering setting, because in these settings the independent samples are the individual series)

Whether y is passed to transformer methods is controlled by pass_y. If the inner transformer has non-defaulting y args, the default behaviour is to pass y to fit, fit_transform, or transform. If no y arg is present, or if it has a default value, y is not passed.

If the passed transformer accepts only y in fit and transform, then pass_y is ignored, and X is plugged into the y argument.

Quickstart

python
from sktime.transformations.adapt import TabularToSeriesAdaptor

estimator = TabularToSeriesAdaptor(transformer, fit_in_transform=False, pass_y='auto', input_type=None, pooling='local')

Parameters(5)

transformersklearn transformer, BaseEstimator descendant instance
scikit-learn-like transformer to fit and apply to series. This is used as a “blueprint” and not fitted or otherwise mutated.
fit_in_transform: bool, optional, default=False

whether transformer_ should be fitted in transform (True), or in fit (False).

  • recommended setting in forecasting (single series or hierarchical): False

  • recommended setting in ts classification, regression, clustering: True

pass_ystr, optional, one of “auto” (default), “fit”, “always”, “never”

Whether to pass y to transformer methods of the transformer clone.

  • “auto”: passes y to methods fit, transform, fit_transform, inverse_transform, if and only if y is a named arg of either method without default. Note: passes y even if it is None

  • “fit”: passes y to method fit, but not to transform. Note: passes y even if it is None, or if not a named arg

  • “always”: passes y to all methods, fit, transform, inverse_transform. Note: passes y even if it is None, or if not a named arg

  • “never”: never passes y to any method.

input_typestr, one of “numpy” (default), “pandas”, optional

type of data passed to the sklearn transformer

  • “numpy”: 2D np.ndarray

  • “pandas”: pd.DataFrame, with column names passed to transformer. column names are coerced to strings if not already, row index is reset to RangeIndex.

poolingstr, one of “local” (default), “global”

whether to apply transformer to each series individually (local), or to all series at once (global)

  • “local”: applies transformer to each series individually

  • “global”: applies transformer to all series at once, pooled to a single 2D np.ndarray or pd.DataFrame

Examples

>>> from sktime.transformations.adapt import TabularToSeriesAdaptor
>>> from sklearn.preprocessing import MinMaxScaler
>>> from sktime.datasets import load_airline
>>> y = load_airline ()
>>> transformer = TabularToSeriesAdaptor (MinMaxScaler ())
>>> y_hat = transformer. fit_transform (y)