Tune¶
- class Tune(pipeline: etna.pipeline.base.BasePipeline, 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, runner: Optional[etna.auto.runner.base.AbstractRunner] = None, storage: Optional[optuna.storages._base.BaseStorage] = None, metrics: Optional[List[etna.metrics.base.Metric]] = None, sampler: Optional[optuna.samplers._base.BaseSampler] = None, params_to_tune: Optional[Dict[str, etna.distributions.distributions.BaseDistribution]] = None)[source]¶
Bases:
etna.auto.auto.AutoBase
Automatic tuning of custom pipeline.
This class takes given pipelines and tries to optimize its hyperparameters by using params_to_tune.
Trials with duplicate parameters are skipped and previously computed results are returned.
Initialize Tune class.
- Parameters
pipeline (etna.pipeline.base.BasePipeline) – Pipeline to optimize.
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. By default, mean aggregation is used.
backtest_params (Optional[dict]) – Custom parameters for backtest instead of default backtest parameters.
experiment_folder (Optional[str]) – Name for saving experiment results, it determines the name for optuna study. By default, isn’t set.
runner (Optional[etna.auto.runner.base.AbstractRunner]) – Runner to use for distributed training. By default,
LocalRunner
is used.storage (Optional[optuna.storages._base.BaseStorage]) – Optuna storage to use. By default, sqlite storage is used with name “etna-auto.db”.
metrics (Optional[List[etna.metrics.base.Metric]]) – List of metrics to compute. By default,
Sign
,SMAPE
,MAE
,MSE
,MedAE
metrics are used.sampler (Optional[optuna.samplers._base.BaseSampler]) – Optuna sampler to use. By default, TPE sampler is used.
params_to_tune (Optional[Dict[str, etna.distributions.distributions.BaseDistribution]]) – Parameters of pipeline that should be tuned with corresponding tuning distributions. By default, pipeline.params_to_tune() is used.
- Inherited-members
Methods
fit
(ts[, timeout, n_trials, initializer, ...])Start automatic pipeline tuning.
objective
(ts, pipeline, params_to_tune, ...)Optuna objective wrapper.
summary
()Get trials summary.
top_k
([k])Get top k pipelines with the best metric value.
- 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, **kwargs) etna.pipeline.base.BasePipeline [source]¶
Start automatic pipeline tuning.
- Parameters
ts (etna.datasets.tsdataset.TSDataset) – TSDataset to fit on.
timeout (Optional[int]) – Timeout for optuna. N.B. this is timeout for each worker. By default, isn’t set.
n_trials (Optional[int]) – Number of trials for optuna. N.B. this is number of trials for each worker. By default, isn’t set.
initializer (Optional[etna.auto.auto._Initializer]) – Object that is called before each pipeline backtest, can be used to initialize loggers.
callback (Optional[etna.auto.auto._Callback]) – Object that is called after each pipeline backtest, can be used to log extra metrics.
**kwargs – Additional parameters for optuna
optuna.study.Study.optimize()
.
- Return type
- static objective(ts: etna.datasets.tsdataset.TSDataset, pipeline: etna.pipeline.base.BasePipeline, params_to_tune: Dict[str, etna.distributions.distributions.BaseDistribution], 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.
pipeline (etna.pipeline.base.BasePipeline) – Pipeline to tune.
params_to_tune (Dict[str, etna.distributions.distributions.BaseDistribution]) – Parameters of pipeline that should be tuned with corresponding tuning distributions.
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]) – Object that is called before each pipeline backtest, can be used to initialize loggers.
callback (Optional[etna.auto.auto._Callback]) – Object that is called after each pipeline backtest, can be used to log extra metrics.
- Returns
function that runs specified trial and returns its evaluated score
- Return type
objective