Skip to content

Commit caf0db9

Browse files
authored
prepare release 0.20.0 (#1025)
* prepare release 0.20.0 * Improve readme * Improve readme * improve readme * Improve readme
1 parent 96c97c1 commit caf0db9

File tree

3 files changed

+77
-47
lines changed

3 files changed

+77
-47
lines changed

CHANGELOG.md

+30-8
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,41 @@
44
Darts is still in an early development phase and we cannot always guarantee backwards compatibility. Changes that may **break code which uses a previous release of Darts** are marked with a "🔴".
55

66
## [Unreleased](https://github.com/unit8co/darts/tree/master)
7-
[Full Changelog](https://github.com/unit8co/darts/compare/0.19.0...master)
7+
[Full Changelog](https://github.com/unit8co/darts/compare/0.20.0...master)
8+
9+
10+
## [0.20.0](https://github.com/unit8co/darts/tree/0.20.0) (2022-06-22)
11+
812
### For users of the library:
913

1014
**Improved**
11-
- Option to avoid global matplotlib configuration changes.
12-
[#924](https://github.com/unit8co/darts/pull/924) by [Mike Richman](https://github.com/zgana).
13-
- Model Improvements: Option for changing activation function for NHiTs and NBEATS. NBEATS support for dropout. NHiTs Support for AvgPooling1d. [#955](https://github.com/unit8co/darts/pull/955) by [Greg DeVos](https://github.com/gdevos010)
15+
- Added support for static covariates in `TimeSeries` class. [#966](https://github.com/unit8co/darts/pull/966) by [Dennis Bader](https://github.com/dennisbader).
16+
- Added support for static covariates in TFT model. [#966](https://github.com/unit8co/darts/pull/966) by [Dennis Bader](https://github.com/dennisbader).
17+
- Support for storing hierarchy of components in `TimeSeries` (in view of hierarchical reconciliation) [#1012](https://github.com/unit8co/darts/pull/1012) by [Julien Herzen](https://github.com/hrzn).
18+
- New Reconciliation transformers for forececast reconciliation: bottom up, top down and MinT. [#1012](https://github.com/unit8co/darts/pull/1012) by [Julien Herzen](https://github.com/hrzn).
19+
- Added support for Monte Carlo Dropout, as a way to capture model uncertainty with torch models at inference time. [#1013](https://github.com/unit8co/darts/pull/1013) by [Julien Herzen](https://github.com/hrzn).
1420
- New datasets: ETT and Electricity. [#617](https://github.com/unit8co/darts/pull/617)
1521
by [Greg DeVos](https://github.com/gdevos010)
16-
- Implemented ["GLU Variants Improve Transformer"](https://arxiv.org/abs/2002.05202) for transformer based models (transformer and TFT). [#959](https://github.com/unit8co/darts/issues/959)
17-
by [Greg DeVos](https://github.com/gdevos010)
18-
- Added support for torch metrics during training and validation. [#996](https://github.com/unit8co/darts/pull/996) by [Greg DeVos](https://github.com/gdevos010)
19-
- New dataset: [Uber TLC](https://github.com/fivethirtyeight/uber-tlc-foil-response). [#1003](https://github.com/unit8co/darts/pull/1003) by [Greg DeVos](https://github.com/gdevos010)
22+
- New dataset: [Uber TLC](https://github.com/fivethirtyeight/uber-tlc-foil-response). [#1003](https://github.com/unit8co/darts/pull/1003) by [Greg DeVos](https://github.com/gdevos010).
23+
- Model Improvements: Option for changing activation function for NHiTs and NBEATS. NBEATS support for dropout. NHiTs Support for AvgPooling1d. [#955](https://github.com/unit8co/darts/pull/955) by [Greg DeVos](https://github.com/gdevos010).
24+
- Implemented ["GLU Variants Improve Transformer"](https://arxiv.org/abs/2002.05202) for transformer based models (transformer and TFT). [#959](https://github.com/unit8co/darts/issues/959) by [Greg DeVos](https://github.com/gdevos010).
25+
- Added support for torch metrics during training and validation. [#996](https://github.com/unit8co/darts/pull/996) by [Greg DeVos](https://github.com/gdevos010).
26+
- Better handling of logging [#1010](https://github.com/unit8co/darts/pull/1010) by [Dustin Brunner](https://github.com/brunnedu).
27+
- Better support for Python 3.10, and dropping `prophet` as a dependency (`Prophet` model still works if `prophet` package is installed separately) [#1023](https://github.com/unit8co/darts/pull/1023) by [Julien Herzen](https://github.com/hrzn).
28+
- Option to avoid global matplotlib configuration changes.
29+
[#924](https://github.com/unit8co/darts/pull/924) by [Mike Richman](https://github.com/zgana).
30+
- 🔴 `HNiTSModel` renamed to `HNiTS` [#1000](https://github.com/unit8co/darts/pull/1000) by [Greg DeVos](https://github.com/gdevos010).
31+
32+
**Fixed**
33+
- A bug with `tail()` and `head()` [#942](https://github.com/unit8co/darts/pull/942) by [Julien Herzen](https://github.com/hrzn).
34+
- An issue with arguments being reverted for the `metric` function of gridsearch and backtest [#989](https://github.com/unit8co/darts/pull/989) by [Clara Grotehans](https://github.com/ClaraGrthns).
35+
- An error checking whether `fit()` has been called in global models [#944](https://github.com/unit8co/darts/pull/944) by [Julien Herzen](https://github.com/hrzn).
36+
- An error in Gaussian Process filter happening with newer versions of sklearn [#963](https://github.com/unit8co/darts/pull/963) by [Julien Herzen](https://github.com/hrzn).
37+
38+
### For developers of the library:
39+
40+
**Fixed**
41+
- An issue with LinearLR scheduler in tests. [#928](https://github.com/unit8co/darts/pull/928) by [Dennis Bader](https://github.com/dennisbader).
2042

2143

2244
## [0.19.0](https://github.com/unit8co/darts/tree/0.19.0) (2022-04-13)

README.md

+46-38
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,14 @@ series, and some of the models offer a rich support for probabilistic forecastin
3131

3232
##### High Level Introductions
3333
* [Introductory Blog Post](https://medium.com/unit8-machine-learning-publication/darts-time-series-made-easy-in-python-5ac2947a8878)
34-
* [Introduction to Darts at PyData Global 2021](https://youtu.be/g6OXDnXEtFA)
34+
* [Introduction video (25 minutes)](https://youtu.be/g6OXDnXEtFA)
3535

3636
##### Articles on Selected Topics
3737
* [Training Models on Multiple Time Series](https://medium.com/unit8-machine-learning-publication/training-forecasting-models-on-multiple-time-series-with-darts-dc4be70b1844)
3838
* [Using Past and Future Covariates](https://medium.com/unit8-machine-learning-publication/time-series-forecasting-using-past-and-future-external-data-with-darts-1f0539585993)
3939
* [Temporal Convolutional Networks and Forecasting](https://medium.com/unit8-machine-learning-publication/temporal-convolutional-networks-and-forecasting-5ce1b6e97ce4)
4040
* [Probabilistic Forecasting](https://medium.com/unit8-machine-learning-publication/probabilistic-forecasting-in-darts-e88fbe83344e)
41+
* [Transfer Learning for Time Series Forecasting](https://medium.com/unit8-machine-learning-publication/transfer-learning-for-time-series-forecasting-87f39e375278)
4142

4243
## Quick Install
4344

@@ -95,57 +96,64 @@ plt.legend()
9596

9697
## Features
9798
* **Forecasting Models:** A large collection of forecasting models; from statistical models (such as
98-
ARIMA) to deep learning models (such as N-BEATS). See table of models below.
99+
ARIMA) to deep learning models (such as N-BEATS). See [table of models below](#forecasting-models).
100+
* **Multivariate Support:** `TimeSeries` can be multivariate - i.e., contain multiple time-varying
101+
dimensions instead of a single scalar value. Many models can consume and produce multivariate series.
102+
* **Multiple series training:** All machine learning based models (incl. all neural networks)
103+
support being trained on multiple (potentially multivariate) series. This can scale to large datasets.
104+
* **Probabilistic Support:** `TimeSeries` objects can (optionally) represent stochastic
105+
time series; this can for instance be used to get confidence intervals, and many models support different flavours of probabilistic forecasting (such as estimating parametric distributions
106+
or quantiles).
107+
* **Past and Future Covariates support:** Many models in Darts support past-observed and/or future-known
108+
covariate (external data) time series as inputs for producing forecasts.
109+
* **Static Covariates support:** In addition to time-dependent data, `TimeSeries` can also contain
110+
static data for each dimension, which can be exploited by some models.
111+
* **Hierarchical Reconciliation:** Darts offers transformers to perform reconciliation.
112+
These can make the forecasts add up in a way that respects the underlying hierarchy.
113+
* **Regression Models:** It is possible to plug-in any scikit-learn compatible model
114+
to obtain forecasts as functions of lagged values of the target series and covariates.
99115
* **Data processing:** Tools to easily apply (and revert) common transformations on
100-
time series data (scaling, boxcox, ...)
116+
time series data (scaling, filling missing values, boxcox, ...)
101117
* **Metrics:** A variety of metrics for evaluating time series' goodness of fit;
102118
from R2-scores to Mean Absolute Scaled Error.
103119
* **Backtesting:** Utilities for simulating historical forecasts, using moving time windows.
104-
* **Regression Models:** Possibility to predict a time series from lagged versions of itself
105-
and of some external covariate series, using arbitrary regression models (e.g. scikit-learn models).
106-
* **Multiple series training:** All machine learning based models (incl.\ all neural networks)
107-
support being trained on multiple series.
108-
* **Past and Future Covariates support:** Some models support past-observed and/or future-known covariate time series
109-
as inputs for producing forecasts.
110-
* **Multivariate Support:** Tools to create, manipulate and forecast multivariate time series.
111-
* **Probabilistic Support:** `TimeSeries` objects can (optionally) represent stochastic
112-
time series; this can for instance be used to get confidence intervals, and several models
113-
support different flavours of probabilistic forecasting.
114120
* **PyTorch Lightning Support:** All deep learning models are implemented using PyTorch Lightning,
115121
supporting among other things custom callbacks, GPUs/TPUs training and custom trainers.
116122
* **Filtering Models:** Darts offers three filtering models: `KalmanFilter`, `GaussianProcessFilter`,
117123
and `MovingAverage`, which allow to filter time series, and in some cases obtain probabilistic
118124
inferences of the underlying states/values.
125+
* **Datasets** The `darts.datasets` submodule contains some popular time series datasets for rapid
126+
experimentation.
119127

120128
## Forecasting Models
121129
Here's a breakdown of the forecasting models currently implemented in Darts. We are constantly working
122130
on bringing more models and features.
123131

124-
Model | Univariate | Multivariate | Probabilistic | Multiple-series training | Past-observed covariates support | Future-known covariates support | Reference
125-
--- | --- | --- | --- | --- | --- | --- | ---
126-
`ARIMA` | ✅ | | ✅ | | | ✅ |
127-
`VARIMA` | ✅ | ✅ | | | | ✅ |
128-
`AutoARIMA` | ✅ | | | | | ✅ |
129-
`StatsForecastAutoARIMA` (faster AutoARIMA) | ✅ | | ✅ | | | ✅ | [statsforecast](https://github.com/Nixtla/statsforecast)
130-
`ExponentialSmoothing` | ✅ | | ✅ | | | |
131-
`BATS` and `TBATS` | ✅ | | ✅ | | | | [TBATS paper](https://robjhyndman.com/papers/ComplexSeasonality.pdf)
132-
`Theta` and `FourTheta` | ✅ | | | | | | [Theta](https://robjhyndman.com/papers/Theta.pdf) & [4 Theta](https://github.com/Mcompetitions/M4-methods/blob/master/4Theta%20method.R)
133-
`Prophet` | ✅ | | ✅ | | | ✅ | [Prophet repo](https://github.com/facebook/prophet)
134-
`FFT` (Fast Fourier Transform) | ✅ | | | | | |
135-
`KalmanForecaster` using the Kalman filter and N4SID for system identification | ✅ | ✅ | ✅ | | | ✅ | [N4SID paper](https://people.duke.edu/~hpgavin/SystemID/References/VanOverschee-Automatica-1994.pdf)
136-
`Croston` method | ✅ | | | | | |
137-
`RegressionModel`; generic wrapper around any sklearn regression model | ✅ | ✅ | | ✅ | ✅ | ✅ |
138-
`RandomForest` | ✅ | ✅ | | ✅ | ✅ | ✅ |
139-
`LinearRegressionModel` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
140-
`LightGBMModel` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
141-
`RNNModel` (incl. LSTM and GRU); equivalent to DeepAR in its probabilistic version | ✅ | ✅ | ✅ | ✅ | | ✅ | [DeepAR paper](https://arxiv.org/abs/1704.04110)
142-
`BlockRNNModel` (incl. LSTM and GRU) | ✅ | ✅ | ✅ | ✅ | ✅ | |
143-
`NBEATSModel` | ✅ | ✅ | ✅ | ✅ | ✅ | | [N-BEATS paper](https://arxiv.org/abs/1905.10437)
144-
`NHiTSModel` | ✅ | ✅ | ✅ | ✅ | ✅ | | [N-HiTS paper](https://arxiv.org/abs/2201.12886)
145-
`TCNModel` | ✅ | ✅ | ✅ | ✅ | ✅ | | [TCN paper](https://arxiv.org/abs/1803.01271), [DeepTCN paper](https://arxiv.org/abs/1906.04397), [blog post](https://medium.com/unit8-machine-learning-publication/temporal-convolutional-networks-and-forecasting-5ce1b6e97ce4)
146-
`TransformerModel` | ✅ | ✅ | ✅ | ✅ | ✅ | |
147-
`TFTModel` (Temporal Fusion Transformer) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | [TFT paper](https://arxiv.org/pdf/1912.09363.pdf), [PyTorch Forecasting](https://pytorch-forecasting.readthedocs.io/en/latest/models.html)
148-
Naive Baselines | ✅ | | | | | |
132+
Model | Univariate | Multivariate | Probabilistic | Multiple-series training | Past-observed covariates support | Future-known covariates | Static covariates support | Reference
133+
--- | --- | --- | --- | --- | --- | --- | --- | ---
134+
`ARIMA` | ✅ | | ✅ | | | ✅ | |
135+
`VARIMA` | ✅ | ✅ | | | | ✅ | |
136+
`AutoARIMA` | ✅ | | | | | ✅ | |
137+
`StatsForecastAutoARIMA` (faster AutoARIMA) | ✅ | | ✅ | | | ✅ | | [statsforecast](https://github.com/Nixtla/statsforecast)
138+
`ExponentialSmoothing` | ✅ | | ✅ | | | | |
139+
`BATS` and `TBATS` | ✅ | | ✅ | | | | | [TBATS paper](https://robjhyndman.com/papers/ComplexSeasonality.pdf)
140+
`Theta` and `FourTheta` | ✅ | | | | | | | [Theta](https://robjhyndman.com/papers/Theta.pdf) & [4 Theta](https://github.com/Mcompetitions/M4-methods/blob/master/4Theta%20method.R)
141+
`Prophet` (see [install notes](https://github.com/unit8co/darts/blob/master/INSTALL.md#enabling-support-for-facebook-prophet)) | ✅ | | ✅ | | | ✅ | | [Prophet repo](https://github.com/facebook/prophet)
142+
`FFT` (Fast Fourier Transform) | ✅ | | | | | | |
143+
`KalmanForecaster` using the Kalman filter and N4SID for system identification | ✅ | ✅ | ✅ | | | ✅ | | [N4SID paper](https://people.duke.edu/~hpgavin/SystemID/References/VanOverschee-Automatica-1994.pdf)
144+
`Croston` method | ✅ | | | | | | |
145+
`RegressionModel`; generic wrapper around any sklearn regression model | ✅ | ✅ | | ✅ | ✅ | ✅ | |
146+
`RandomForest` | ✅ | ✅ | | ✅ | ✅ | ✅ | |
147+
`LinearRegressionModel` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
148+
`LightGBMModel` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
149+
`RNNModel` (incl. LSTM and GRU); equivalent to DeepAR in its probabilistic version | ✅ | ✅ | ✅ | ✅ | | ✅ | | [DeepAR paper](https://arxiv.org/abs/1704.04110)
150+
`BlockRNNModel` (incl. LSTM and GRU) | ✅ | ✅ | ✅ | ✅ | ✅ | | |
151+
`NBEATSModel` | ✅ | ✅ | ✅ | ✅ | ✅ | | | [N-BEATS paper](https://arxiv.org/abs/1905.10437)
152+
`NHiTSModel` | ✅ | ✅ | ✅ | ✅ | ✅ | | | [N-HiTS paper](https://arxiv.org/abs/2201.12886)
153+
`TCNModel` | ✅ | ✅ | ✅ | ✅ | ✅ | | | [TCN paper](https://arxiv.org/abs/1803.01271), [DeepTCN paper](https://arxiv.org/abs/1906.04397), [blog post](https://medium.com/unit8-machine-learning-publication/temporal-convolutional-networks-and-forecasting-5ce1b6e97ce4)
154+
`TransformerModel` | ✅ | ✅ | ✅ | ✅ | ✅ | | |
155+
`TFTModel` (Temporal Fusion Transformer) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | [TFT paper](https://arxiv.org/pdf/1912.09363.pdf), [PyTorch Forecasting](https://pytorch-forecasting.readthedocs.io/en/latest/models.html)
156+
Naive Baselines | ✅ | | | | | | |
149157

150158

151159
## Community & Contact

setup_u8darts.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def read_requirements(path):
2929

3030
setup(
3131
name="u8darts",
32-
version="0.19.0",
32+
version="0.20.0",
3333
description="A python library for easy manipulation and forecasting of time series.",
3434
long_description=LONG_DESCRIPTION,
3535
long_description_content_type="text/markdown",

0 commit comments

Comments
 (0)