Source-linked AI summary

Darts: User-Friendly Modern Machine Learning for Time Series

Julien Herzen, Francesco Lässig, Samuele Giuliano Piazzetta, Thomas Neuer, Léo Tafti, Guillaume Raille, Tomas Van Pottelbergh, Marek Pasieka, Andrzej Skrodzki, Nicolas Huguenin, Maxime Dumonal, Jan Kościsz, Dennis Bader, Frédérick Gusset, Mounir Benheddi, Camila Williamson, Michal Kosinski, Matej Petrik, Gaël Grosch

arXiv:2110.03224v3cs.LGstat.CO

TL;DR

Forecasting needs tools that scale modern machine learning beyond single-series workflows while remaining accessible to practitioners. Darts addresses this by unifying classical and machine-learning models under a user-friendly API with multi-series training, external covariates, and probabilistic forecasting. Its examples illustrate fitting one probabilistic TCN across distinct series and producing quantile forecasts.

  • Problem

    Modern machine-learning forecasting requires tools supporting larger datasets, higher dimensionalities, multiple series, and new forecasting workflows while remaining accessible to practitioners.

  • Method

    Darts provides a common high-level API and TimeSeries representation for classical and machine-learning models, with support for multi-series training, covariates, and probabilistic forecasting.

  • Results

    Darts offers a unified forecasting library spanning classical methods and deep neural networks with functionality for large datasets, external data, ensembling, and probabilistic forecasts.

  • Takeaways & Limitations

    Darts is intended to make modern machine-learning forecasting approaches easier to use alongside classical methods through a common API.

Abstract

from arXiv · show

We present Darts, a Python machine learning library for time series, with a focus on forecasting. Darts offers a variety of models, from classics such as ARIMA to state-of-the-art deep neural networks. The emphasis of the library is on offering modern machine learning functionalities, such as supporting multidimensional series, meta-learning on multiple series, training on large datasets, incorporating external data, ensembling models, and providing a rich support for probabilistic forecasting. At the same time, great care goes into the API design to make it user-friendly and easy to use. For instance, all models can be used using fit()/predict(), similar to scikit-learn.

1. Introduction

Darts addresses the growing need for scalable, modern machine-learning forecasting tools while preserving user-friendly access for practitioners. It unifies classical and machine-learning forecasting under a higher-level API.

  • Time series forecasting supports applications across logistics, maintenance, energy, manufacturing, agriculture, healthcare, sales, and climate science.
  • Machine learning is attractive because it can improve representation power and scale to larger datasets and higher dimensionalities.
  • Modern machine learning changes forecasting practice through multi-series training, high-dimensional data support, stochastic-gradient training, and tailored loss functions.
  • User-friendly and powerful APIs are needed to make machine-learning forecasting as easy to use as classical techniques and support broader practitioner adoption.
  • Darts proposes a relatively high-level API that unifies classical and machine-learning forecasting models.

2. Design Principles and Main Features of Darts

Darts combines a consistent time-series representation and fit()/predict() interface with support for multi-series training, covariates, probabilistic forecasts, and workflow tooling. This design lets users work across diverse forecasting models through a common API.

  • Time Series Representation: Darts’ immutable TimeSeries container represents well-formed univariate, multivariate, and stochastic series using time, component, and sample dimensions.
  • Time Series Representation: Because models consume and produce TimeSeries objects, their outputs can be readily passed into other models through a consistent API.
  • Unified High-Level Forecasting API: All models share fit(series: TimeSeries) and predict(n: int) -> TimeSeries, while many also support training on sequences of series.
  • Training Models on Collections of Time Series: Darts supports training one model across many separate series, with customizable slicing logic, GPU-enabled neural networks, and lazy loading for datasets that do not fit in memory.
  • Support for Past and Future Covariates: Covariates distinguish known-future from past-only external data, while slicing aligns covariates with targets on their respective time axes.
  • Probabilistic Forecasting: Probabilistic models represent joint distributions with Monte Carlo samples and support arbitrary differentiable likelihoods, including 17 built-in distributions.
  • Other Features: Additional capabilities include preprocessing pipelines, backtesting, hyperparameter search, metrics, dynamic time warping, ensembles, filtering models, and public datasets.

3. Usage Example

The usage example demonstrates a complete probabilistic forecasting workflow with Darts: load and scale two series, train one TCN model on both, forecast one series, and plot quantile predictions.

  • The example loads AirPassengers and MonthlyMilk datasets and preprocesses each with a separate Scaler.
  • A single TCN model is fitted on two distinct series using default hyperparameters.
  • The network outputs a Laplace distribution, enabling forecasts to be plotted with arbitrary quantiles.

4. Conclusions

Darts aims to democratize modern machine-learning forecasting by unifying it with classical approaches under a common, user-friendly API. The library remains under active development.

  • Darts aims to democratize modern machine-learning forecasting and unify it with classical approaches under a common user-friendly API.
  • The library is still under active development, with future work including static covariates and pretrained models for large datasets.
Loading 2110.03224v3…