Auto

class Auto(target_metric: etna.metrics.base.Metric, horizon: int, metric_aggregation: Literal['median', 'mean', 'std', 'percentile_5', 'percentile_25', 'percentile_75', 'percentile_95'] = 'mean', backtest_params: Optional[dict] = None, experiment_folder: Optional[str] = None, pool: Union[etna.auto.pool.generator.Pool, List[etna.pipeline.pipeline.Pipeline]] = Pool.default, runner: Optional[etna.auto.runner.base.AbstractRunner] = None, storage: Optional[optuna.storages._base.BaseStorage] = None, metrics: Optional[List[etna.metrics.base.Metric]] = None)[source]

Bases: object

Automatic pipeline selection via defined or custom pipeline pool.

Initialize Auto class.

Parameters
  • target_metric (etna.metrics.base.Metric) – metric to optimize

  • horizon (int) – horizon to forecast for

  • metric_aggregation (Literal['median', 'mean', 'std', 'percentile_5', 'percentile_25', 'percentile_75', 'percentile_95']) – aggregation method for per-segment metrics

  • backtest_params (Optional[dict]) – custom parameters for backtest instead of default backtest parameters

  • experiment_folder (Optional[str]) – folder to store experiment results and name for optuna study

  • pool (Union[etna.auto.pool.generator.Pool, List[etna.pipeline.pipeline.Pipeline]]) – pool of pipelines to choose from

  • runner (Optional[etna.auto.runner.base.AbstractRunner]) – runner to use for distributed training

  • storage (Optional[optuna.storages._base.BaseStorage]) – optuna storage to use

  • metrics (Optional[List[etna.metrics.base.Metric]]) – list of metrics to compute

Inherited-members

Methods

fit(ts[, timeout, n_trials, initializer, ...])

Start automatic pipeline selection.

objective(ts, target_metric, ...[, ...])

Optuna objective wrapper.

summary()

Get Auto trials summary.

top_k([k])

Get top k pipelines.

fit(ts: etna.datasets.tsdataset.TSDataset, timeout: Optional[int] = None, n_trials: Optional[int] = None, initializer: Optional[etna.auto.auto._Initializer] = None, callback: Optional[etna.auto.auto._Callback] = None, **optuna_kwargs) etna.pipeline.pipeline.Pipeline[source]

Start automatic pipeline selection.

Parameters
  • ts (etna.datasets.tsdataset.TSDataset) – tsdataset to fit on

  • timeout (Optional[int]) – timeout for optuna. N.B. this is timeout for each worker

  • n_trials (Optional[int]) – number of trials for optuna. N.B. this is number of trials for each worker

  • initializer (Optional[etna.auto.auto._Initializer]) – is called before each pipeline backtest, can be used to initialize loggers

  • callback (Optional[etna.auto.auto._Callback]) – is called after each pipeline backtest, can be used to log extra metrics

  • optuna_kwargs – additional kwargs for optuna optuna.study.Study.optimize()

Return type

etna.pipeline.pipeline.Pipeline

static objective(ts: etna.datasets.tsdataset.TSDataset, target_metric: etna.metrics.base.Metric, metric_aggregation: Literal['median', 'mean', 'std', 'percentile_5', 'percentile_25', 'percentile_75', 'percentile_95'], metrics: List[etna.metrics.base.Metric], backtest_params: dict, initializer: Optional[etna.auto.auto._Initializer] = None, callback: Optional[etna.auto.auto._Callback] = None) Callable[[optuna.trial._trial.Trial], float][source]

Optuna objective wrapper.

Parameters
  • ts (etna.datasets.tsdataset.TSDataset) – tsdataset to fit on

  • target_metric (etna.metrics.base.Metric) – metric to optimize

  • metric_aggregation (Literal['median', 'mean', 'std', 'percentile_5', 'percentile_25', 'percentile_75', 'percentile_95']) – aggregation method for per-segment metrics

  • metrics (List[etna.metrics.base.Metric]) – list of metrics to compute

  • backtest_params (dict) – custom parameters for backtest instead of default backtest parameters

  • initializer (Optional[etna.auto.auto._Initializer]) – is called before each pipeline backtest, can be used to initialize loggers

  • callback (Optional[etna.auto.auto._Callback]) – is called after each pipeline backtest, can be used to log extra metrics

Return type

Callable[[optuna.trial._trial.Trial], float]

summary() pandas.core.frame.DataFrame[source]

Get Auto trials summary.

Return type

pandas.core.frame.DataFrame

top_k(k: int = 5) List[etna.pipeline.pipeline.Pipeline][source]

Get top k pipelines.

Parameters

k (int) – number of pipelines to return

Return type

List[etna.pipeline.pipeline.Pipeline]