TimeSeriesImputerTransform#

class TimeSeriesImputerTransform(in_column: str = 'target', strategy: str = ImputerMode.constant, window: int = -1, seasonality: int = 1, default_value: float | None = None, constant_value: float = 0)[source]#

Bases: ReversibleTransform

Transform to fill NaNs in series of a given dataframe.

  • It is assumed that given series begins with first non NaN value.

  • This transform can’t fill NaNs in the future, only on train data.

  • This transform can’t fill NaNs if all values are NaNs. In this case exception is raised.

Warning

This transform can suffer from look-ahead bias in ‘mean’ mode. For transforming data at some timestamp it uses information from the whole train part.

Create instance of TimeSeriesImputerTransform.

Parameters:
  • in_column (str) – name of processed column

  • strategy (str) –

    filling value in missing timestamps:

    • If “mean”, then replace missing dates using the mean in fit stage.

    • If “running_mean” then replace missing dates using mean of subset of data

    • If “forward_fill” then replace missing dates using last existing value

    • If “seasonal” then replace missing dates using seasonal moving average

    • If “constant” then replace missing dates using constant value.

  • window (int) –

    In case of moving average and seasonality.

    • If window=-1 all previous dates are taken in account

    • Otherwise only window previous dates

  • seasonality (int) – the length of the seasonality

  • default_value (float | None) – value which will be used to impute the NaNs left after applying the imputer with the chosen strategy

  • constant_value (float) – value to fill gaps in “constant” strategy

Raises:

ValueError: – if incorrect strategy given

Methods

fit(ts)

Fit the transform.

fit_transform(ts)

Fit and transform TSDataset.

get_regressors_info()

Return the list with regressors created by the transform.

inverse_transform(ts)

Inverse transform TSDataset.

load(path)

Load an object.

params_to_tune()

Get default grid for tuning hyperparameters.

save(path)

Save the object.

set_params(**params)

Return new object instance with modified parameters.

to_dict()

Collect all information about etna object in dict.

transform(ts)

Transform TSDataset inplace.

Attributes

This class stores its __init__ parameters as attributes.

fit(ts: TSDataset) Transform[source]#

Fit the transform.

Parameters:

ts (TSDataset) – Dataset to fit the transform on.

Returns:

The fitted transform instance.

Return type:

Transform

fit_transform(ts: TSDataset) TSDataset[source]#

Fit and transform TSDataset.

May be reimplemented. But it is not recommended.

Parameters:

ts (TSDataset) – TSDataset to transform.

Returns:

Transformed TSDataset.

Return type:

TSDataset

get_regressors_info() List[str][source]#

Return the list with regressors created by the transform.

Return type:

List[str]

inverse_transform(ts: TSDataset) TSDataset[source]#

Inverse transform TSDataset.

Apply the _inverse_transform method.

Parameters:

ts (TSDataset) – TSDataset to be inverse transformed.

Returns:

TSDataset after applying inverse transformation.

Return type:

TSDataset

classmethod load(path: Path) Self[source]#

Load an object.

Parameters:

path (Path) – Path to load object from.

Returns:

Loaded object.

Return type:

Self

params_to_tune() Dict[str, BaseDistribution][source]#

Get default grid for tuning hyperparameters.

This grid tunes parameters: strategy, window. Other parameters are expected to be set by the user.

Strategy “seasonal” is suggested only if self.seasonality is set higher than 1.

Returns:

Grid to tune.

Return type:

Dict[str, BaseDistribution]

save(path: Path)[source]#

Save the object.

Parameters:

path (Path) – Path to save object to.

set_params(**params: dict) Self[source]#

Return new object instance with modified parameters.

Method also allows to change parameters of nested objects within the current object. For example, it is possible to change parameters of a model in a Pipeline.

Nested parameters are expected to be in a <component_1>.<...>.<parameter> form, where components are separated by a dot.

Parameters:

**params (dict) – Estimator parameters

Returns:

New instance with changed parameters

Return type:

Self

Examples

>>> from etna.pipeline import Pipeline
>>> from etna.models import NaiveModel
>>> from etna.transforms import AddConstTransform
>>> model = model=NaiveModel(lag=1)
>>> transforms = [AddConstTransform(in_column="target", value=1)]
>>> pipeline = Pipeline(model, transforms=transforms, horizon=3)
>>> pipeline.set_params(**{"model.lag": 3, "transforms.0.value": 2})
Pipeline(model = NaiveModel(lag = 3, ), transforms = [AddConstTransform(in_column = 'target', value = 2, inplace = True, out_column = None, )], horizon = 3, )
to_dict()[source]#

Collect all information about etna object in dict.

transform(ts: TSDataset) TSDataset[source]#

Transform TSDataset inplace.

Parameters:

ts (TSDataset) – Dataset to transform.

Returns:

Transformed TSDataset.

Return type:

TSDataset