You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: CHANGELOG.md
+71-7
Original file line number
Diff line number
Diff line change
@@ -1,17 +1,81 @@
1
1
2
2
# Changelog
3
3
4
-
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 "🔴".
4
+
We do our best to avoid the introduction of breaking changes,
5
+
but cannot always guarantee backwards compatibility. Changes that may **break code which uses a previous release of Darts** are marked with a "🔴".
- Fixed edge case in ShapExplainer for regression models where covariates series > target series [#1310](https://https://github.com/unit8co/darts/pull/1310) by [Rijk van der Meulen](https://github.com/rijkvandermeulen)
- 🚀🚀🚀 Brand new Darts module dedicated to anomaly detection on time series: `darts.ad`.
15
+
More info on the API doc page: https://unit8co.github.io/darts/generated_api/darts.ad.html.
16
+
[#1256](https://github.com/unit8co/darts/pull/1256) by [Julien Adda](https://github.com/julien12234)
17
+
and [Julien Herzen](https://github.com/hrzn).
18
+
- New forecasting models: `DLinearModel` and `NLinearModel` as proposed in [this paper](https://arxiv.org/pdf/2205.13504.pdf).
19
+
[#1139](https://github.com/unit8co/darts/pull/1139) by [Julien Herzen](https://github.com/hrzn) and [Greg DeVos](https://github.com/gdevos010).
20
+
- New forecasting model: `XGBModel` implementing XGBoost.
21
+
[#1405](https://github.com/unit8co/darts/pull/1405) by [Julien Herzen](https://github.com/hrzn).
22
+
- New `multi_models` option for all `RegressionModel`s: when set to False, uses only a single underlying
23
+
estimator for multi-step forecasting, which can drastically increase computational efficiency.
24
+
[#1291](https://github.com/unit8co/darts/pull/1291) by [Eliane Maalouf](https://github.com/eliane-maalouf).
25
+
- All `RegressionModel`s (incl. LightGBM, Catboost, XGBoost, Random Forest, ...)
26
+
now support static covariates.
27
+
[#1412](https://github.com/unit8co/darts/pull/1412) by [Eliane Maalouf](https://github.com/eliane-maalouf).
28
+
-`historical_forecasts()` and `backtest()` now work on multiple series, too.
29
+
[#1318](https://github.com/unit8co/darts/pull/1318) by [Maxime Dumonal](https://github.com/dumjax).
30
+
- New window transformation capabilities: `TimeSeries.window_transform()` and
31
+
a new `WindowTransformer` which allow to easily create window features.
32
+
[#1269](https://github.com/unit8co/darts/pull/1269) by [Eliane Maalouf](https://github.com/eliane-maalouf).
33
+
- 🔴 Improvements to `TorchForecastingModels`: Load models directly to CPU that were trained on GPU. Save file size reduced.
34
+
Improved PyTorch Lightning Trainer handling fixing several minor issues.
35
+
Removed deprecated methods `load_model` and `save_model`
36
+
[#1371](https://github.com/unit8co/darts/pull/1371) by [Dennis Bader](https://github.com/dennisbader).
37
+
- Improvements to encoders: Added support for encoders to all models with covariate support through `add_encoders` at model creation.
38
+
Encoders now generate the correct minimum required covariate time spans for all models.
39
+
[#1338](https://github.com/unit8co/darts/pull/1338) by [Dennis Bader](https://github.com/dennisbader).
40
+
- New datasets available in `darts.datasets` (`ILINetDataset`, `ExchangeRateDataset`, `TrafficDataset`, `WeatherDataset`)
41
+
[#1298](https://github.com/unit8co/darts/pull/1298) by [Kamil Wierciak](https://github.com/FEJTWOW).
42
+
[#1291](https://github.com/unit8co/darts/pull/1291) by [Eliane Maalouf](https://github.com/eliane-maalouf).
43
+
- New `Diff` transformer, which can difference and "undifference" series
44
+
[#1380](https://github.com/unit8co/darts/pull/1380) by [Matt Bilton](https://github.com/mabilton).
45
+
- Improvements to KalmanForecaster: The model now accepts different TimeSeries for prediction than the ones used to fit the model.
46
+
[#1338](https://github.com/unit8co/darts/pull/1338) by [Dennis Bader](https://github.com/dennisbader).
47
+
- Backtest functions can now accept a list of metric functions [#1333](https://github.com/unit8co/darts/pull/1333)
48
+
by [Antoine Madrona](https://github.com/madtoinou).
49
+
- Extension of baseline models to work on multivariate series
50
+
[#1373](https://github.com/unit8co/darts/pull/1373) by [Błażej Nowicki](https://github.com/BlazejNowicki).
51
+
- Improvement to `TimeSeries.gaps()`[#1265](https://github.com/unit8co/darts/pull/1265) by
52
+
[Antoine Madrona](https://github.com/madtoinou).
53
+
- Speedup of `TimeSeries.quantile_timeseries()` method
54
+
[#1351](https://github.com/unit8co/darts/pull/1351) by [@tranquilitysmile](https://github.com/tranquilitysmile).
55
+
- Some dependencies which can be hard to install (LightGBM, Catboost, XGBoost, Prophet, Statsforecast)
56
+
are not required anymore (if not installed the corresponding models will not be available)
57
+
[#1360](https://github.com/unit8co/darts/pull/1360) by [Antoine Madrona](https://github.com/madtoinou).
8
58
- Removed `IPython` as a dependency. [#1331](https://github.com/unit8co/darts/pull/1331) by [Erik Hasse](https://github.com/erik-hasse)
9
-
- New models: `DLinearModel` and `NLinearModel` as proposed in [this paper](https://arxiv.org/pdf/2205.13504.pdf). [#1139](https://github.com/unit8co/darts/pull/1139) by [Julien Herzen](https://github.com/hrzn) and [Greg DeVos](https://github.com/gdevos010).
10
-
- 🔴 Improvements to `TorchForecastingModels`: Load models directly to CPU that were trained on GPU. Save file size reduced. Improved PyTorch Lightning Trainer handling fixing several minor issues. Removed deprecated methods `load_model` and `save_model`[#1371](https://github.com/unit8co/darts/pull/1371) by [Dennis Bader](https://github.com/dennisbader).
11
-
- Improvements to encoders: Added support for encoders to all models with covariate support through `add_encoders` at model creation. Encoders now generate the correct minimum required covariate time spans for all models. [#1338](https://github.com/unit8co/darts/pull/1338) by [Dennis Bader](https://github.com/dennisbader).
12
-
- Improvements to KalmanForecaster: The model now accepts different TimeSeries for prediction than the ones used to fit the model. [#1338](https://github.com/unit8co/darts/pull/1338) by [Dennis Bader](https://github.com/dennisbader).
59
+
- Allow the creation of empty `TimeSeries`[#1359](https://github.com/unit8co/darts/pull/1359)
60
+
by [Antoine Madrona](https://github.com/madtoinou).
[](https://github.com/psf/black)[](https://gitter.im/u8darts/darts?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
16
16
17
-
**darts** is a Python library for easy manipulation and forecasting of time series.
18
-
It contains a variety of models, from classics such as ARIMA to deep neural networks.
19
-
The models can all be used in the same way, using `fit()` and `predict()` functions,
20
-
similar to scikit-learn. The library also makes it easy to backtest models,
17
+
**Darts** is a Python library for user-friendly forecasting and anomaly detection
18
+
on time series. It contains a variety of models, from classics such as ARIMA to
19
+
deep neural networks. The forecasting models can all be used in the same way,
20
+
using `fit()` and `predict()` functions, similar to scikit-learn.
21
+
The library also makes it easy to backtest models,
21
22
combine the predictions of several models, and take external data into account.
22
23
Darts supports both univariate and multivariate time series and models.
23
24
The ML-based models can be trained on potentially large datasets containing multiple time
24
25
series, and some of the models offer a rich support for probabilistic forecasting.
25
26
27
+
Darts also offers extensive anomaly detection capabilities.
28
+
For instance, it is trivial to apply PyOD models on time series to obtain anomaly scores,
29
+
or to wrap any of Darts forecasting or filtering models to obtain fully
***Forecasting Models:** A large collection of forecasting models; from statistical models (such as
100
158
ARIMA) to deep learning models (such as N-BEATS). See [table of models below](#forecasting-models).
159
+
160
+
***Anomaly Detection** The `darts.ad` module contains a collection of anomaly scorers,
161
+
detectors and aggregators, which can all be combined to detect anomalies in time series.
162
+
It is easy to wrap any of Darts forecasting or filtering models to build
163
+
a fully fledged anomaly detection model that compares predictions with actuals.
164
+
The `PyODScorer` makes it trivial to use PyOD detectors on time series.
165
+
101
166
***Multivariate Support:**`TimeSeries` can be multivariate - i.e., contain multiple time-varying
102
167
dimensions instead of a single scalar value. Many models can consume and produce multivariate series.
103
-
***Multiple series training:** All machine learning based models (incl. all neural networks)
104
-
support being trained on multiple (potentially multivariate) series. This can scale to large datasets.
168
+
169
+
***Multiple series training (global models):** All machine learning based models (incl. all neural networks)
170
+
support being trained on multiple (potentially multivariate) series. This can scale to large datasets too.
171
+
105
172
***Probabilistic Support:**`TimeSeries` objects can (optionally) represent stochastic
106
-
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
107
-
or quantiles).
173
+
time series; this can for instance be used to get confidence intervals, and many models support different
174
+
flavours of probabilistic forecasting (such as estimating parametric distributions or quantiles).
175
+
Some anomaly detection scorers are also able to exploit these predictive distributions.
176
+
108
177
***Past and Future Covariates support:** Many models in Darts support past-observed and/or future-known
109
178
covariate (external data) time series as inputs for producing forecasts.
179
+
110
180
***Static Covariates support:** In addition to time-dependent data, `TimeSeries` can also contain
111
181
static data for each dimension, which can be exploited by some models.
182
+
112
183
***Hierarchical Reconciliation:** Darts offers transformers to perform reconciliation.
113
184
These can make the forecasts add up in a way that respects the underlying hierarchy.
185
+
114
186
***Regression Models:** It is possible to plug-in any scikit-learn compatible model
115
187
to obtain forecasts as functions of lagged values of the target series and covariates.
116
-
***Explainability:** Darts has the ability to *explain* forecasting models by using Shap values.
188
+
189
+
***Explainability:** Darts has the ability to *explain* some forecasting models using Shap values.
190
+
117
191
***Data processing:** Tools to easily apply (and revert) common transformations on
118
-
time series data (scaling, filling missing values, boxcox, ...)
192
+
time series data (scaling, filling missing values, differencing, boxcox, ...)
193
+
119
194
***Metrics:** A variety of metrics for evaluating time series' goodness of fit;
120
195
from R2-scores to Mean Absolute Scaled Error.
196
+
121
197
***Backtesting:** Utilities for simulating historical forecasts, using moving time windows.
198
+
122
199
***PyTorch Lightning Support:** All deep learning models are implemented using PyTorch Lightning,
123
200
supporting among other things custom callbacks, GPUs/TPUs training and custom trainers.
201
+
124
202
***Filtering Models:** Darts offers three filtering models: `KalmanFilter`, `GaussianProcessFilter`,
125
203
and `MovingAverage`, which allow to filter time series, and in some cases obtain probabilistic
126
204
inferences of the underlying states/values.
205
+
127
206
***Datasets** The `darts.datasets` submodule contains some popular time series datasets for rapid
128
-
experimentation.
207
+
and reproducible experimentation.
129
208
130
209
## Forecasting Models
131
210
Here's a breakdown of the forecasting models currently implemented in Darts. We are constantly working
132
211
on bringing more models and features.
133
212
134
-
Model | Univariate | Multivariate | Probabilistic | Multiple-series training | Past-observed covariates support | Future-known covariates | Static covariates support | Reference
@@ -145,20 +224,21 @@ Model | Univariate | Multivariate | Probabilistic | Multiple-series training | P
145
224
`FFT` (Fast Fourier Transform) | ✅ | | | | | | |
146
225
`KalmanForecaster` using the Kalman filter and N4SID for system identification | ✅ | ✅ | ✅ | | | ✅ | | [N4SID paper](https://people.duke.edu/~hpgavin/SystemID/References/VanOverschee-Automatica-1994.pdf)
147
226
`Croston` method | ✅ | | | | | | |
148
-
`RegressionModel`; generic wrapper around any sklearn regression model | ✅ | ✅ | | ✅ | ✅ | ✅ | |
0 commit comments