metrics

Classes

MAE([mode])

Mean absolute error metric with multi-segment computation support.

MAPE([mode])

Mean absolute percentage error metric with multi-segment computation support.

MSE([mode])

Mean squared error metric with multi-segment computation support.

MSLE([mode])

Mean squared logarithmic error metric with multi-segment computation support.

MaxDeviation([mode])

Max Deviation metric with multi-segment computation support (maximum deviation value of cumulative sums).

MedAE([mode])

Median absolute error metric with multi-segment computation support.

R2([mode])

Coefficient of determination metric with multi-segment computation support.

RMSE([mode])

Root mean squared error metric with multi-segment computation support.

SMAPE([mode])

Symmetric mean absolute percentage error metric with multi-segment computation support.

Sign([mode])

Sign error metric with multi-segment computation support.

WAPE([mode])

Weighted average percentage Error metric with multi-segment computation support.

class MAE(mode: str = MetricAggregationMode.per_segment, **kwargs)[source]

Mean absolute error metric with multi-segment computation support.

\[MAE(y\_true, y\_pred) = \frac{\sum_{i=0}^{n-1}{\mid y\_true_i - y\_pred_i \mid}}{n}\]

Notes

You can read more about logic of multi-segment metrics in Metric docs.

Init metric.

Parameters
  • mode ('macro' or 'per-segment') – metrics aggregation mode

  • kwargs – metric’s computation arguments

set_params(**params: dict) etna.core.mixins.TMixin

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 – Estimator parameters

  • self (etna.core.mixins.TMixin) –

  • params (dict) –

Returns

New instance with changed parameters

Return type

etna.core.mixins.TMixin

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

Collect all information about etna object in dict.

property greater_is_better: bool

Whether higher metric value is better.

property name: str

Name of the metric for representation.

class MAPE(mode: str = MetricAggregationMode.per_segment, **kwargs)[source]

Mean absolute percentage error metric with multi-segment computation support.

\[MAPE(y\_true, y\_pred) = \frac{1}{n}\cdot\frac{\sum_{i=0}^{n-1}{\mid y\_true_i - y\_pred_i\mid}}{\mid y\_true_i \mid + \epsilon}\]

Notes

You can read more about logic of multi-segment metrics in Metric docs.

Init metric.

Parameters
  • mode ('macro' or 'per-segment') – metrics aggregation mode

  • kwargs – metric’s computation arguments

set_params(**params: dict) etna.core.mixins.TMixin

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 – Estimator parameters

  • self (etna.core.mixins.TMixin) –

  • params (dict) –

Returns

New instance with changed parameters

Return type

etna.core.mixins.TMixin

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

Collect all information about etna object in dict.

property greater_is_better: bool

Whether higher metric value is better.

property name: str

Name of the metric for representation.

class MSE(mode: str = MetricAggregationMode.per_segment, **kwargs)[source]

Mean squared error metric with multi-segment computation support.

\[MSE(y\_true, y\_pred) = \frac{\sum_{i=0}^{n-1}{(y\_true_i - y\_pred_i)^2}}{n}\]

Notes

You can read more about logic of multi-segment metrics in Metric docs.

Init metric.

Parameters
  • mode ('macro' or 'per-segment') – metrics aggregation mode

  • kwargs – metric’s computation arguments

set_params(**params: dict) etna.core.mixins.TMixin

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 – Estimator parameters

  • self (etna.core.mixins.TMixin) –

  • params (dict) –

Returns

New instance with changed parameters

Return type

etna.core.mixins.TMixin

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

Collect all information about etna object in dict.

property greater_is_better: bool

Whether higher metric value is better.

property name: str

Name of the metric for representation.

class MSLE(mode: str = MetricAggregationMode.per_segment, **kwargs)[source]

Mean squared logarithmic error metric with multi-segment computation support.

\[MSLE(y\_true, y\_pred) = \frac{1}{n}\cdot\sum_{i=0}^{n - 1}{(ln(1 + y\_true_i) - ln(1 + y\_pred_i))^2}\]

Notes

You can read more about logic of multi-segment metrics in Metric docs.

Init metric.

Parameters
  • mode ('macro' or 'per-segment') – metrics aggregation mode

  • kwargs – metric’s computation arguments

set_params(**params: dict) etna.core.mixins.TMixin

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 – Estimator parameters

  • self (etna.core.mixins.TMixin) –

  • params (dict) –

Returns

New instance with changed parameters

Return type

etna.core.mixins.TMixin

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

Collect all information about etna object in dict.

property greater_is_better: bool

Whether higher metric value is better.

property name: str

Name of the metric for representation.

class MaxDeviation(mode: str = MetricAggregationMode.per_segment, **kwargs)[source]

Max Deviation metric with multi-segment computation support (maximum deviation value of cumulative sums).

\[MaxDeviation(y\_true, y\_pred) = \max_{j} | y_j |, where \, y_j = \sum_{i=1}^{j}{y\_pred_i - y\_true_i}\]

Notes

You can read more about logic of multi-segment metrics in Metric docs.

Init metric.

Parameters
  • mode ('macro' or 'per-segment') – metrics aggregation mode

  • kwargs – metric’s computation arguments

set_params(**params: dict) etna.core.mixins.TMixin

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 – Estimator parameters

  • self (etna.core.mixins.TMixin) –

  • params (dict) –

Returns

New instance with changed parameters

Return type

etna.core.mixins.TMixin

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

Collect all information about etna object in dict.

property greater_is_better: bool

Whether higher metric value is better.

property name: str

Name of the metric for representation.

class MedAE(mode: str = MetricAggregationMode.per_segment, **kwargs)[source]

Median absolute error metric with multi-segment computation support.

\[MedAE(y\_true, y\_pred) = median(\mid y\_true_1 - y\_pred_1 \mid, \cdots, \mid y\_true_n - y\_pred_n \mid)\]

Notes

You can read more about logic of multi-segment metrics in Metric docs.

Init metric.

Parameters
  • mode ('macro' or 'per-segment') – metrics aggregation mode

  • kwargs – metric’s computation arguments

set_params(**params: dict) etna.core.mixins.TMixin

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 – Estimator parameters

  • self (etna.core.mixins.TMixin) –

  • params (dict) –

Returns

New instance with changed parameters

Return type

etna.core.mixins.TMixin

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

Collect all information about etna object in dict.

property greater_is_better: bool

Whether higher metric value is better.

property name: str

Name of the metric for representation.

class R2(mode: str = MetricAggregationMode.per_segment, **kwargs)[source]

Coefficient of determination metric with multi-segment computation support.

\[R^2(y\_true, y\_pred) = 1 - \frac{\sum_{i=0}^{n-1}{(y\_true_i - y\_pred_i)^2}}{\sum_{i=0}^{n-1}{(y\_true_i - \overline{y\_true})^2}}\]

Notes

You can read more about logic of multi-segment metrics in Metric docs.

Init metric.

Parameters
  • mode ('macro' or 'per-segment') – metrics aggregation mode

  • kwargs – metric’s computation arguments

set_params(**params: dict) etna.core.mixins.TMixin

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 – Estimator parameters

  • self (etna.core.mixins.TMixin) –

  • params (dict) –

Returns

New instance with changed parameters

Return type

etna.core.mixins.TMixin

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

Collect all information about etna object in dict.

property greater_is_better: bool

Whether higher metric value is better.

property name: str

Name of the metric for representation.

class RMSE(mode: str = MetricAggregationMode.per_segment, **kwargs)[source]

Root mean squared error metric with multi-segment computation support.

\[RMSE(y\_true, y\_pred) = \sqrt\frac{\sum_{i=0}^{n-1}{(y\_true_i - y\_pred_i)^2}}{n}\]

Notes

You can read more about logic of multi-segment metrics in Metric docs.

Init metric.

Parameters
  • mode ('macro' or 'per-segment') – metrics aggregation mode

  • kwargs – metric’s computation arguments

set_params(**params: dict) etna.core.mixins.TMixin

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 – Estimator parameters

  • self (etna.core.mixins.TMixin) –

  • params (dict) –

Returns

New instance with changed parameters

Return type

etna.core.mixins.TMixin

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

Collect all information about etna object in dict.

property greater_is_better: bool

Whether higher metric value is better.

property name: str

Name of the metric for representation.

class SMAPE(mode: str = MetricAggregationMode.per_segment, **kwargs)[source]

Symmetric mean absolute percentage error metric with multi-segment computation support.

\[SMAPE(y\_true, y\_pred) = \frac{2 \cdot 100 \%}{n}\cdot\frac{\sum_{i=0}^{n-1}{\mid y\_true_i - y\_pred_i\mid}}{\mid y\_true_i \mid + \mid y\_pred_i \mid}\]

Notes

You can read more about logic of multi-segment metrics in Metric docs.

Init metric.

Parameters
  • mode ('macro' or 'per-segment') – metrics aggregation mode

  • kwargs – metric’s computation arguments

set_params(**params: dict) etna.core.mixins.TMixin

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 – Estimator parameters

  • self (etna.core.mixins.TMixin) –

  • params (dict) –

Returns

New instance with changed parameters

Return type

etna.core.mixins.TMixin

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

Collect all information about etna object in dict.

property greater_is_better: bool

Whether higher metric value is better.

property name: str

Name of the metric for representation.

class Sign(mode: str = MetricAggregationMode.per_segment, **kwargs)[source]

Sign error metric with multi-segment computation support.

\[Sign(y\_true, y\_pred) = \frac{1}{n}\cdot\sum_{i=0}^{n - 1}{sign(y\_true_i - y\_pred_i)}\]

Notes

You can read more about logic of multi-segment metrics in Metric docs.

Init metric.

Parameters
  • mode ('macro' or 'per-segment') – metrics aggregation mode

  • kwargs – metric’s computation arguments

set_params(**params: dict) etna.core.mixins.TMixin

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 – Estimator parameters

  • self (etna.core.mixins.TMixin) –

  • params (dict) –

Returns

New instance with changed parameters

Return type

etna.core.mixins.TMixin

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

Collect all information about etna object in dict.

property greater_is_better: None

Whether higher metric value is better.

property name: str

Name of the metric for representation.

class WAPE(mode: str = MetricAggregationMode.per_segment, **kwargs)[source]

Weighted average percentage Error metric with multi-segment computation support.

\[WAPE(y\_true, y\_pred) = \frac{\sum_{i=0}^{n} |y\_true_i - y\_pred_i|}{\sum_{i=0}^{n}|y\_true_i|}\]

Notes

You can read more about logic of multi-segment metrics in Metric docs.

Init metric.

Parameters
  • mode ('macro' or 'per-segment') – metrics aggregation mode

  • kwargs – metric’s computation arguments

set_params(**params: dict) etna.core.mixins.TMixin

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 – Estimator parameters

  • self (etna.core.mixins.TMixin) –

  • params (dict) –

Returns

New instance with changed parameters

Return type

etna.core.mixins.TMixin

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

Collect all information about etna object in dict.

property greater_is_better: bool

Whether higher metric value is better.

property name: str

Name of the metric for representation.