DateFlagsTransform#

class DateFlagsTransform(day_number_in_week: bool | None = True, day_number_in_month: bool | None = True, day_number_in_year: bool | None = False, week_number_in_month: bool | None = False, week_number_in_year: bool | None = False, month_number_in_year: bool | None = False, season_number: bool | None = False, year_number: bool | None = False, is_weekend: bool | None = True, special_days_in_week: Sequence[int] = (), special_days_in_month: Sequence[int] = (), out_column: str | None = None)[source]#

Bases: IrreversibleTransform, FutureMixin

DateFlagsTransform is a class that implements extraction of the main date-based features from datetime column.

Notes

Small example of week_number_in_month and week_number_in_year features

timestamp

day_number_in_week

week_number_in_month

week_number_in_year

2020-01-01

4

1

53

2020-01-02

5

1

53

2020-01-03

6

1

53

2020-01-04

0

2

1

2020-01-10

6

2

1

2020-01-11

0

3

2

Create instance of DateFlags.

Parameters:
  • day_number_in_week (bool | None) – if True, add column with weekday info to feature dataframe in transform

  • day_number_in_month (bool | None) – if True, add column with day info to feature dataframe in transform

  • day_number_in_year (bool | None) – if True, add column with number of day in a year with leap year numeration (values from 1 to 366)

  • week_number_in_month (bool | None) – if True, add column with week number (in month context) to feature dataframe in transform

  • week_number_in_year (bool | None) – if True, add column with week number (in year context) to feature dataframe in transform

  • month_number_in_year (bool | None) – if True, add column with month info to feature dataframe in transform

  • season_number (bool | None) – if True, add column with season info to feature dataframe in transform

  • year_number (bool | None) – if True, add column with year info to feature dataframe in transform

  • is_weekend (bool | None) – if True: add column with weekends flags to feature dataframe in transform

  • special_days_in_week (Sequence[int]) – list of weekdays number (from [0, 6]) that should be interpreted as special ones, if given add column with flag that shows given date is a special day

  • special_days_in_month (Sequence[int]) – list of days number (from [1, 31]) that should be interpreted as special ones, if given add column with flag that shows given date is a special day

  • out_column (str | None) –

    base for the name of created columns;

    • if set the final name is ‘{out_column}_{feature_name}’;

    • if don’t set, name will be transform.__repr__(), repr will be made for transform that creates exactly this column

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.

Do nothing.

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: day_number_in_week, day_number_in_month, day_number_in_year, week_number_in_month, week_number_in_year, month_number_in_year, season_number, year_number, is_weekend. Other parameters are expected to be set by the user.

There are no restrictions on all False values for the flags.

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