metrics¶
Classes
|
Mean absolute error metric with multi-segment computation support. |
|
Mean absolute percentage error metric with multi-segment computation support. |
|
Mean squared error metric with multi-segment computation support. |
|
Mean squared logarithmic error metric with multi-segment computation support. |
|
Max Deviation metric with multi-segment computation support (maximum deviation value of cumulative sums). |
|
Median absolute error metric with multi-segment computation support. |
|
Coefficient of determination metric with multi-segment computation support. |
|
Root mean squared error metric with multi-segment computation support. |
|
Symmetric mean absolute percentage error metric with multi-segment computation support. |
|
Sign error metric with multi-segment computation support. |
|
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 aPipeline
.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 aPipeline
.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 aPipeline
.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 aPipeline
.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 aPipeline
.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 aPipeline
.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 aPipeline
.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 aPipeline
.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 aPipeline
.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 aPipeline
.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 aPipeline
.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.