etna.pipeline.FoldMask#

class FoldMask(first_train_timestamp: Timestamp | int | str | None, last_train_timestamp: Timestamp | int | str, target_timestamps: List[Timestamp | int | str])[source]#

Bases: BaseMixin

Container to hold the description of the fold mask.

Fold masks are expected to be used for backtest strategy customization.

Init FoldMask.

Values of target_timestamps are sorted in ascending order.

Notes

String value is converted into :py:class`pd.Timestamps` using pandas.to_datetime().

Parameters:
  • first_train_timestamp (Timestamp | int | str | None) – First train timestamp, the first timestamp in the dataset if None is passed

  • last_train_timestamp (Timestamp | int | str) – Last train timestamp

  • target_timestamps (List[Timestamp | int | str]) – List of target timestamps

Raises:
  • ValueError: – All timestamps should be one of two possible types: pd.Timestamp or int

  • ValueError: – Last train timestamp should be not sooner than first train timestamp

  • ValueError: – Target timestamps shouldn’t be empty

  • ValueError: – Target timestamps shouldn’t contain duplicates

  • ValueError: – Target timestamps should be strictly later then last train timestamp

Methods

set_params(**params)

Return new object instance with modified parameters.

to_dict()

Collect all information about etna object in dict.

validate_on_dataset(ts, horizon)

Validate fold mask on the dataset with specified horizon.

Attributes

This class stores its __init__ parameters as attributes.

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 = 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.

validate_on_dataset(ts: TSDataset, horizon: int)[source]#

Validate fold mask on the dataset with specified horizon.

Parameters:
  • ts (TSDataset) – Dataset to validate on

  • horizon (int) – Forecasting horizon

Raises:
  • ValueError: – First train timestamp isn’t present in a given dataset

  • ValueError: – Last train timestamp isn’t present in a given dataset

  • ValueError: – Some of target timestamps aren’t present in a given dataset

  • ValueError: – First train timestamp should be later than minimal dataset timestamp

  • ValueError: – Last train timestamp should be not later than the ending of the shortest segment

  • ValueError: – Last target timestamp should be not later than horizon steps after last train timestamp