diff --git a/CHANGELOG.md b/CHANGELOG.md index 812c766140..feefc8dca7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,36 @@ 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 "🔴". ## [Unreleased](https://github.com/unit8co/darts/tree/develop) -[Full Changelog](https://github.com/unit8co/darts/compare/0.8.1...develop) +[Full Changelog](https://github.com/unit8co/darts/compare/0.9.0...develop) +## [0.9.0](https://github.com/unit8co/darts/tree/0.9.0) (2021-07-09) +### For users of the library: + +**Added:** +- Multiple forecasting models can now produce probabilistic forecasts by specifying a `num_samples` parameter when calling `predict()`. Stochastic forecasts are stored by utilizing the new `samples` dimension in the refactored `TimeSeries` class (see 'Changed' section). Models supporting probabilistic predictions so far are `ARIMA`, `ExponentialSmoothing`, `RNNModel` and `TCNModel`. +- Introduced `LikelihoodModel` class which is used by probabilistic `TorchForecastingModel` classes in order to make predictions in the form of parametrized distributions of different types. +- Added new abstract class `TorchParametricProbabilisticForecastingModel` to serve as parent class for probabilistic models. +- Introduced new `FilteringModel` abstract class alongside `MovingAverage`, `KalmanFilter` and `GaussianProcessFilter` as concrete implementations. +- Future covariates are now utilized by `TorchForecastingModels` when the forecasting horizon exceeds the `output_chunk_length` of the model. Before, `TorchForecastingModel` instances could only predict beyond their `output_chunk_length` if they were not trained on covariates, i.e. if they predicted all the data they need as input. This restriction has now been lifted by letting a model not only consume its own output when producing long predictions, but also utilizing the covariates known in the future, if available. +- Added a new `RNNModel` class which utilizes and rnn module as both encoder and decoder. This new class natively supports the use of the most recent future covariates when making a forecast. See documentation for more details. +- Introduced optional `epochs` parameter to the `TorchForecastingModel.predict()` method which, if provided, overrides the `n_epochs` attribute in that particular model instance and training session. +- Added support for `TimeSeries` with a `pandas.RangeIndex` instead of just allowing `pandas.DatetimeIndex`. +- `ForecastingModel.gridsearch` now makes use of parallel computation. +- Introduced a new `force_reset` parameter to `TorchForecastingModel.__init__()` which, if left to False, will prevent the user from overriding model data with the same name and directory. + + +**Fixed:** +- Solved bug occurring when training `NBEATSModel` on a GPU. +- Fixed crash when running `NBEATSModel` with `log_tensorboard=True` +- Solved bug occurring when training a `TorchForecastingModel` instance with a `batch_size` bigger than the available number of training samples. +- Some fixes in the documentation, including adding more details +- Other minor bug fixes + +**Changed:** +- 🔴 The `TimeSeries` class has been refactored to support stochastic time series representation by adding an additional dimension to a time series, namely `samples`. A time series is now based on a 3-dimensional `xarray.DataArray` with shape `(n_timesteps, n_components, n_samples)`. This overhaul also includes a change of the constructor which is incompatible with the old one. However, factory methods have been added to create a `TimeSeries` instance from a variety of data types, including `pd.DataFrame`. Please refer to the documentation of `TimeSeries` for more information. +- 🔴 The old version of `RNNModel` has been renamed to `BlockRNNModel`. +- The `historical_forecast()` and `backtest()` methods of `ForecastingModel` have been reorganized a bit by making use of new wrapper methods to fit and predict models. +- Updated `README.md` to reflect the new additions to the library. ## [0.8.1](https://github.com/unit8co/darts/tree/0.8.1) (2021-05-22) **Fixed:** diff --git a/setup_u8darts.py b/setup_u8darts.py index f7bb75d7f6..62a7f44221 100644 --- a/setup_u8darts.py +++ b/setup_u8darts.py @@ -29,7 +29,7 @@ def read_requirements(path): setup( name='u8darts', - version="0.8.1", + version="0.9.0", description='A python library for easy manipulation and forecasting of time series.', long_description=LONG_DESCRIPTION, long_description_content_type="text/markdown",