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 "🔴".
0.15.0 (2021-12-24)
Added:
-
On-the-fly encoding of position and calendar information in Torch-based models. Torch-based models now accept an option
add_encodersparameter, specifying how to use certain calendar and position information as past and/or future covariates on the-fly.Example:
from darts.dataprocessing.transformers import Scaler add_encoders={ 'cyclic': {'future': ['month']}, 'datetime_attribute': {'past': ['hour'], 'future': ['year', 'dayofweek']}, 'position': {'past': ['absolute'], 'future': ['relative']}, 'custom': {'past': [lambda index: (index.year - 1950) / 50]}, 'transformer': Scaler() }This will add a cyclic encoding of the month as future covariates, add some datetime attributes as past and future covariates, an absolute/relative position (index), and even some custom mapping of the index (such as a function of the year). A
Scalerwill be applied to fit/transform all of these covariates both during training and inference. -
The scalers can now also be applied on stochastic
TimeSeries. -
There is now a new argument
max_samples_per_tsto thefit()method of Torch-based models, which can be used to limit the number of samples contained in the underlying training dataset, by taking (at most) the most recentmax_samples_per_tstraining samples per time series. -
All local forecasting models that support covariates (Prophet, ARIMA, VARIMA, AutoARIMA) now handle covariate slicing themselves; this means that you don't need to make sure your covariates have the exact right time span. As long as they contain the right time span, the models will slice them for you.
-
TimeSeries.map()and mappers data transformers now work on stochasticTimeSeries. -
Granger causality function:
utils.statistics.granger_causality_testscan test if one univariateTimeSeries"granger causes" another. -
New stationarity tests for univariate
TimeSeries:darts.utils.statistics.stationarity_tests,darts.utils.statistics.stationarity_test_adfanddarts.utils.statistics.stationarity_test_kpss. -
New test coverage badge 🦄
Fixed:
- Fixed various issues in different notebooks.
- Fixed a bug handling frequencies in Prophet model.
- Fixed an issue causing
PastCovariatesTorchModels(such asNBEATSModel) prediction to fail whenn > output_chunk_lengthANDnnot being a multiple ofoutput_chunk_length. - Fixed an issue in backtesting which was causing untrained models
not to be trained on the initial window when
retrain=False. - Fixed an issue causing
residuals()to fail for Torch-based models.
- Updated the contribution guidelines
- The unit tests have been re-organised with submodules following that of the library.
- All relative import paths have been removed and replaced by absolute paths.
- pytest and pytest-cov are now used to run tests and compute coverage.
0.14.0 (2021-11-28)
Added:
- Probabilistic N-BEATS: The
NBEATSModelcan now produce probabilistic forecasts, in a similar way as all the other deep learning models in Darts (specifying alikelihoodand predicting withnum_samples>> 1). - We have improved the speed of the data loaing functionalities for PyTorch-based models. This should speedup training, typically by a few percents.
- Added
num_loader_workersparameters tofit()andpredict()methods of PyTorch-based models, in order to control thenum_workersof PyTorch DataLoaders. This can sometimes result in drastic speedups. - New method
TimeSeries.astype()which allows to easily case (e.g. betweennp.float64andnp.float32). - Added
dtypeas an option to the time series generation modules. - Added a small performance guide for PyTorch-based models.
- Possibility to specify a (relative) time index to be used as future covariates in the TFT Model. Future covariates don't have to be specified when this is used.
- New TFT example notebook.
- Less strict dependencies: we have loosened the required dependencies versions.
Fixed:
- A small fix on the Temporal Fusion Transformer
TFTModel, which should improve performance. - A small fix in the random state of some unit tests.
- Fixed a typo in Transformer example notebook.
0.13.1 (2021-11-08)
Added:
- Factory methods in
TimeSeriesare nowclassmethods, which makes inheritance ofTimeSeriesmore convenient.
Fixed:
- An issue which was causing some of the flavours installations not to work
0.13.0 (2021-11-07)
Added:
- New forecasting model: Temporal Fusion Transformer (
TFTModel). A new deep learning model supporting both past and future covariates. - Improved support for Facebook Prophet model (
Prophet):- Added support for fit & predict with future covariates. For instance:
model.fit(train, future_covariates=train_covariates)andmodel.predict(n=len(test), num_sample=1, future_covariates=test_covariates) - Added stochastic forecasting, for instance:
model.predict(n=len(test), num_samples=200) - Added user-defined seasonalities either at model creation with kwarg
add_seasonality(Prophet(add_seasonality=kwargs_dict)) or pre-fit withmodel.add_seasonality(kwargs). For more information on how to add seasonalities, see the Prophet docs. - Added possibility to predict and return the base model's raw output with
model.predict_raw(). Note that this returns a pd.DataFramepred_df, which will not be supported for further processing with the Darts API. But it is possible to access Prophet's methods such as plots withmodel.model.plot_compenents(pred_df).
- Added support for fit & predict with future covariates. For instance:
- New
n_random_samplesingridsearch()method, which allows to specify a number of (random) hyper parameters combinations to be tried, in order mainly to limit the gridsearch time. - Improvements in the checkpointing and saving of Torch models.
- Now models don't save checkpoints by default anymore. Set
save_checkpoints=Trueto enable them. - Models can be manually saved with
YourTorchModel.save_model(file_path)(file_path pointing to the .pth.tar file). - Models can be manually loaded with
YourTorchModel.load_model(file_path)or the original methodYourTorchModel.load_from_checkpoint().
- Now models don't save checkpoints by default anymore. Set
- New
QuantileRegressionLikelihood class indarts.utils.likelihood_models. Allows to apply quantile regression loss, and get probabilistic forecasts on all deep learning models supporting likelihoods. Used by default in the Temporal Fusion Transformer.
Fixed:
- Some issues with
darts.concatenate(). - Fixed some bugs with
RegressionModels applied on multivariate series. - An issue with the confidence bounds computation in ACF plot.
- Added a check for some models that do not support
retrain=Falseforhistorical_forecasts(). - Small fixes in install instructions.
- Some rendering issues with bullet points lists in examples.
0.12.0 (2021-09-25)
Added:
- Improved probabilistic forecasting with neural networks
- Now all neural networks based forecasting models (except
NBEATSModel) support probabilistic forecasting, by providing thelikelihoodparameter to the model's constructor method. darts.utils.likelihood_modelsnow contains many more distributions. The complete list of likelihoods available to train neural networks based models is available here: https://unit8co.github.io/darts/generated_api/darts.utils.likelihood_models.html- Many of the available likelihood models now offer the possibility to specify "priors" on the distribution's parameters. Specifying such priors will regularize the training loss to make the output distribution more like the one specified by the prior parameters values.
- Now all neural networks based forecasting models (except
- Performance improvements on
TimeSeriescreation. creatingTimeSeriesis now be significantly faster, especially for large series, and filling missing dates has also been significantly sped up. - New rho-risk metric for probabilistic forecasts.
- New method
darts.utils.statistics.plot_hist()to plot histograms of time series data (e.g. backtest errors). - New argument
fillna_valuetoTimeSeriesfactory methods, allowing to specify a value to fill missing dates (instead ofnp.nan). - Synthetic
TimeSeriesgenerated withdarts.utils.timeseries_generationmethods can now be integer-index (just pass an integer instead of a timestamp for thestartargument). - Removed some deprecation warnings
- Updated conda installation instructions
Fixed:
- Removed extra 1x1 convolutions in TCN Model.
- Fixed an issue with linewidth parameter when plotting
TimeSeries. - Fixed a column name issue in datetime attribute time series.
- We have removed the
developbranch. - We force sklearn<1.0 has we have observed issues with pmdarima and sklearn==1.0
0.11.0 (2021-09-04)
Added:
- New model:
LightGBMModelis a new regression model. Regression models allow to predict future values of the target, given arbitrary lags of the target as well as past and/or future covariates.RegressionModelalready works with any scikit-learn regression model, and nowLightGBMModeldoes the same with LightGBM. If you want to activate LightGBM support in Darts, please read the detailed install notes on the README carefully. - Added stride support to gridsearch
Fixed:
- A bug which was causing issues when training on a GPU with a validation set
- Some issues with custom-provided RNN modules in
RNNModel. - Properly handle
kwargsin thefitfunction ofRegressionModels. - Fixed an issue which was causing problems with latest versions of Matplotlib.
- An issue causing errors in the FFT notebook
0.10.1 (2021-08-19)
Fixed:
- A bug with memory pinning that was causing issues with training models on GPUs.
Changed:
- Clarified conda support on the README
0.10.0 (2021-08-13)
Added:
-
🔴 Improvement of the covariates support. Before, some models were accepting a
covariates(orexog) argument, but it wasn't always clear whether this represented "past-observed" or "future-known" covariates. We have made this clearer. Now all covariate-aware models supportpast_covariatesand/orfuture_covariatesargument in theirfit()andpredict()methods, which makes it clear what series is used as a past or future covariate. We recommend this article for more information and examples. -
🔴 Significant improvement of
RegressionModel(incl.LinearRegressionModelandRandomForest). These models now support training on multiple (possibly multivariate) time series. They also support bothpast_covariatesandfuture_covariates. It makes it easier than ever to fit arbitrary regression models (e.g. from scikit-learn) on multiple series, to predict the future of a target series based on arbitrary lags of the target and the past/future covariates. The signature of these models changed: It's not using "exog" keyword arguments, butpast_covariatesandfuture_covariatesinstead. -
Dynamic Time Warping. There is a brand new
darts.dataprocessing.dtwsubmodule that implements Dynamic Time Warping between twoTimeSeries. It's also coming with a newdtwmetric indarts.metrics. We recommend going over the new DTW example notebook for a good overview of the new functionalities -
Conda forge installation support (fully supported with Python 3.7 only for now). You can now
conda install u8darts-all. -
TimeSeries.from_csv()allows to obtain aTimeSeriesfrom a CSV file directly. -
Optional cyclic encoding of the datetime attributes future covariates; for instance it's now possible to call
my_series.add_datetime_attribute('weekday', cyclic=True), which will add two columns containing a sin/cos encoding of the weekday. -
Default seasonality inference in
ExponentialSmoothing. If left toNone, theseasonal_periodsis inferred from thefreqof the provided series. -
Various documentation improvements.
Fixed:
- Now transformations and forecasting maintain the columns' names of the
TimeSeries. The generation moduledarts.utils.timeseries_generationalso comes with better default columns names. - Some issues with our Docker build process
- A bug with GPU usage
Changed:
- For probabilistic PyTorch based models, the generation of multiple samples (and series) at prediction time is now vectorized, which improves inference performance.
0.9.1 (2021-07-17)
Added:
- Improved
GaussianProcessFilter, now handling missing values, and better handling time series indexed by datetimes. - Improved Gaussian Process notebook.
Fixed:
TimeSeriesnow supports indexing usingpandas.Int64Indexand not justpandas.RangeIndex, which solves some indexing issues.- We have changed all factory methods of
TimeSeriesto havefill_missing_dates=Falseby default. This is because in some cases inferring the frequency for missing dates and resampling the series is causing significant performance overhead. - Fixed backtesting to make it work with integer-indexed series.
- Fixed a bug that was causing inference to crash on GPUs for some models.
- Fixed the default folder name, which was causing issues on Windows systems.
- We have slightly improved the documentation rendering and fixed the titles
of the documentation pages for
RNNModelandBlockRNNModelto distinguish them.
Changed:
- The dependencies are not pinned to some exact versions anymore.
- We have fixed the building process.
0.9.0 (2021-07-09)
Added:
- Multiple forecasting models can now produce probabilistic forecasts by specifying a
num_samplesparameter when callingpredict(). Stochastic forecasts are stored by utilizing the newsamplesdimension in the refactoredTimeSeriesclass (see 'Changed' section). Models supporting probabilistic predictions so far areARIMA,ExponentialSmoothing,RNNModelandTCNModel. - Introduced
LikelihoodModelclass which is used by probabilisticTorchForecastingModelclasses in order to make predictions in the form of parametrized distributions of different types. - Added new abstract class
TorchParametricProbabilisticForecastingModelto serve as parent class for probabilistic models. - Introduced new
FilteringModelabstract class alongsideMovingAverage,KalmanFilterandGaussianProcessFilteras concrete implementations. - Future covariates are now utilized by
TorchForecastingModelswhen the forecasting horizon exceeds theoutput_chunk_lengthof the model. Before,TorchForecastingModelinstances could only predict beyond theiroutput_chunk_lengthif 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
RNNModelclass 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
epochsparameter to theTorchForecastingModel.predict()method which, if provided, overrides then_epochsattribute in that particular model instance and training session. - Added support for
TimeSerieswith apandas.RangeIndexinstead of just allowingpandas.DatetimeIndex. ForecastingModel.gridsearchnow makes use of parallel computation.- Introduced a new
force_resetparameter toTorchForecastingModel.__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
NBEATSModelon a GPU. - Fixed crash when running
NBEATSModelwithlog_tensorboard=True - Solved bug occurring when training a
TorchForecastingModelinstance with abatch_sizebigger than the available number of training samples. - Some fixes in the documentation, including adding more details
- Other minor bug fixes
Changed:
- 🔴 The
TimeSeriesclass has been refactored to support stochastic time series representation by adding an additional dimension to a time series, namelysamples. A time series is now based on a 3-dimensionalxarray.DataArraywith 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 aTimeSeriesinstance from a variety of data types, includingpd.DataFrame. Please refer to the documentation ofTimeSeriesfor more information. - 🔴 The old version of
RNNModelhas been renamed toBlockRNNModel. - The
historical_forecast()andbacktest()methods ofForecastingModelhave been reorganized a bit by making use of new wrapper methods to fit and predict models. - Updated
README.mdto reflect the new additions to the library.
0.8.1 (2021-05-22)
Fixed:
- Some fixes in the documentation
Changed:
- The way to instantiate Dataset classes; datasets should now be used like this
from darts.datasets import AirPassengers
ts: TimeSeries = AirPassengers().load()
0.8.0 (2021-05-21)
Added:
RandomForestalgorithm implemented. Uses the scikit-learnRandomForestRegressorto predict future values from (lagged) exogenous variables and lagged values of the target.darts.datasetsis a new submodule allowing to easily download, cache and import some commonly used time series.- Better support for processing sequences of
TimeSeries.- The Transformers, Pipelines and metrics have been adapted to be used on sequences of
TimeSeries(rather than isolated series). - The inference of neural networks on sequences of series has been improved
- The Transformers, Pipelines and metrics have been adapted to be used on sequences of
- There is a new utils function
darts.utils.model_selection.train_test_splitwhich allows to split aTimeSeriesor a sequence ofTimeSeriesinto train and test sets; either along the sample axis or along the time axis. It also optionally allows to do "model-aware" splitting, where the split reclaims as much data as possible for the training set. - Our implementation of N-BEATS,
NBEATSModel, now supports multivariate time series, as well as covariates.
Changed
RegressionModelis now a user exposed class. It acts as a wrapper around any regression model with afit()andpredict()method. It enables the flexible usage of lagged values of the target variable as well as lagged values of multiple exogenous variables. Allowed values for thelagsargument are positive integers or a list of positive integers indicating which lags should be used during training and prediction, e.g.lags=12translates to training with the last 12 lagged values of the target variable.lags=[1, 4, 8, 12]translates to training with the previous value, the value at lag 4, lag 8 and lag 12.- 🔴
StandardRegressionModelis now calledLinearRegressionModel. It implements a linear regression model fromsklearn.linear_model.LinearRegression. Users who still need to use the formerStandardRegressionModelwith another sklearn model should use theRegressionModelnow.
Fixed
- We have fixed a bug arising when multiple scalers were used.
- We have fixed a small issue in the TCN architecture, which makes our implementation follow the original paper more closely.
Added:
- We have added some contribution guidelines.
0.7.0 (2021-04-14)
Added:
dartsPypi package. It is now possible topip install darts. The older nameu8dartsis still maintained and provides the different flavours for lighter installs.- New forecasting model available: VARIMA (Vector Autoregressive moving average).
- Support for exogeneous variables in ARIMA, AutoARIMA and VARIMA (optional
exogparameter infit()andpredict()methods). - New argument
dummy_indexforTimeSeriescreation. If a series is just composed of a sequence of numbers without timestamps, setting this flag will allow to create aTimeSerieswhich uses a "dummy time index" behind the scenes. This simplifies the creation ofTimeSeriesin such cases, and makes it possible to use all forecasting models, except those that explicitly rely on dates. - New method
TimeSeries.diff()returning differencedTimeSeries. - Added an example of
RegressionEnsembleModelin intro notebook.
Changed:
- Improved N-BEATS example notebook.
- Methods
TimeSeries.split_before()andsplit_after()now also accept integer or float arguments (in addition to timestamp) for the breaking point (e.g. specify 0.8 in order to obtain a 80%/20% split). - Argument
value_colsno longer has to be provided if not necessary when creating aTimeSeriesfrom aDataFrame. - Update of dependency requirements to more recent versions.
Fixed:
- Fix issue with MAX_TORCH_SEED_VALUE on 32-bit architectures (unit8co#235).
- Corrected a bug in TCN inference, which should improve accuracy.
- Fix historical forecasts not returning last point.
- Fixed bug when calling the
TimeSeries.gaps()function for non-regular time frequencies. - Many small bug fixes.
0.6.0 (2021-02-02)
Added:
Pipeline.invertible()a getter which returns whether the pipeline is invertible or not.TimeSeries.to_json()andTimeSeries.from_json()methods to convertTimeSeriesto/from aJSONstring.- New base class
GlobalForecastingModelfor all models supporting training on multiple time series, as well as covariates. All PyTorch models are nowGlobalForecastingModels. - As a consequence of the above, the
fit()function of PyTorch models (all neural networks) can optionally be called with a sequence of time series (instead of a single time series). - Similarly, the
predict()function of these models also accepts a specification of which series should be forecasted - A new
TrainingDatasetbase class. - Some implementations of
TrainingDatasetcontaining some slicing logic for the training of neural networks on several time series. - A new
TimeSeriesInferenceDatasetbase class. - An implementation
SimpleInferenceDatasetofTimeSeriesInferenceDataset. - All PyTorch models have a new
fit_from_dataset()method which allows to directly fit the model from a specifiedTrainingDatasetinstance (instead of using a default instance when going via thefit()method). - A new explanatory notebooks for global models: https://github.com/unit8co/darts/blob/master/examples/02-multi-time-series-and-covariates.ipynb
Changed:
- 🔴 removed the arguments
training_seriesandtarget_seriesinForecastingModels. Please consult the API documentation of forecasting models to see the new signatures. - 🔴 removed
UnivariateForecastingModelandMultivariateForecastingModelbase classes. This distinction does not exist anymore. Instead, now some models are "global" (can be trained on multiple series) or "local" (they cannot). All implementations ofGlobalForecastingModels support multivariate time series out of the box, except N-BEATS. - Improved the documentation and README.
- Re-ordered the example notebooks to improve the flow of examples.
Fixed:
- Many small bug fixes.
- Unit test speedup by about 15x.
0.5.0 (2020-11-09)
Added:
- Ensemble models, a new kind of
ForecastingModelwhich allows to ensemble multiple models to make predictions:EnsembleModelis the abstract base class for ensemble models. Classes deriving fromEnsembleModelmust implement theensemble()method, which takes in aList[TimeSeries]of predictions from the constituent models, and returns the ensembled prediction (a singleTimeSeriesobject)RegressionEnsembleModel, a concrete implementation ofEnsembleModelwhich allows to specify any regression model (providingfit()andpredict()methods) to use to ensemble the constituent models' predictions.
- A new method to
TorchForecastingModel:untrained_model()returns the model as it was initially created, allowing to retrain the exact same model from scratch. Works both when specifying arandom_stateor not. - New
ForecastingModel.backtest()andRegressionModel.backtest()functions which by default compute a single error score from the historical forecasts the model would have produced.- A new
reductionparameter allows to specify whether to compute the mean/median/… of errors or (whenreductionis set toNone) to return a list of historical errors. - The previous
backtest()functionality still exists but has been renamedhistorical_forecasts()
- A new
- Added a new
last_points_onlyparameter tohistorical_forecasts(),backtest()andgridsearch()
Changed:
- 🔴 Renamed
backtest()intohistorical_forecasts() fill_missing_values()andMissingValuesFillerused to remove the variable names when used withfill='auto'– not anymore.- Modified the default plotting style to increase contrast and make plots lighter.
Fixed:
- Small mistake in the
NaiveDriftmodel implementation which caused the first predicted value to repeat the last training value.
Changed:
@random_methoddecorator now always assigns a_random_instancefield to decorated methods (seeded with a random seed). This doesn't change the observed behavior, but allows to deterministically "reset"TorchForecastingModelby saving_random_instancealong with the other parameters of the model upon creation.
0.4.0 (2020-10-28)
Added:
- Data (pre) processing abilities using
DataTransformer,Pipeline:DataTransformerprovide a unified interface to apply transformations onTimeSeries, using theirtransform()methodPipeline:- allow chaining of
DataTransformers - provide
fit(),transform(),fit_transform()andinverse_transform()methods.
- allow chaining of
- Implementing your own data transformers:
- Data transformers which need to be fitted first should derive from the
FittableDataTransformerbase class and implement afit()method. Fittable transformers also provide afit_transform()method, which fits the transformer and then transforms the data with a single call. - Data transformers which perform an invertible transformation should derive from the
InvertibleDataTransformerbase class and implement ainverse_transform()method. - Data transformers which are neither fittable nor invertible should derive from the
BaseDataTransformerbase class - All data transformers must implement a
transform()method.
- Data transformers which need to be fitted first should derive from the
- Concrete
DataTransformerimplementations:MissingValuesFillerwraps aroundfill_missing_value()and allows to fill missing values using either a constant value or thepd.interpolate()method.MapperandInvertibleMapperallow to easily perform the equivalent of amap()function on a TimeSeries, and can be made part of aPipelineBoxCoxallows to apply a BoxCox transformation to the data
- Extended
map()onTimeSeriesto accept functions which use both a value and its timestamp to compute a new value e.g.f(timestamp, datapoint) = new_datapoint - Two new forecasting models:
TransformerModel, an implementation based on the architecture described in Attention Is All You Need by Vaswani et al. (2017)NBEATSModel, an implementation based on the N-BEATS architecture described in N-BEATS: Neural basis expansion analysis for interpretable time series forecasting by Boris N. Oreshkin et al. (2019)
Changed:
- 🔴 Removed
colsparameter frommap(). Using indexing onTimeSeriesis preferred.# Assuming a multivariate TimeSeries named series with 3 columns or variables. # To apply fn to columns with names '0' and '2': #old syntax series.map(fn, cols=['0', '2']) # returned a time series with 3 columns #new syntax series[['0', '2']].map(fn) # returns a time series with only 2 columns
- 🔴 Renamed
ScalerWrapperintoScaler - 🔴 Renamed the
preprocessingmodule intodataprocessing - 🔴 Unified
auto_fillna()andfillna()into a singlefill_missing_value()function#old syntax fillna(series, fill=0) #new syntax fill_missing_values(series, fill=0) #old syntax auto_fillna(series, **interpolate_kwargs) #new syntax fill_missing_values(series, fill='auto', **interpolate_kwargs) fill_missing_values(series, **interpolate_kwargs) # fill='auto' by default
Changed:
- GitHub release workflow is now triggered manually from the GitHub "Actions" tab in the repository, providing a
#major,#minor, or#patchargument. #211 - (A limited number of) notebook examples are now run as part of the GitHub PR workflow.
0.3.0 (2020-10-05)
Added:
- Better indexing on TimeSeries (support for column/component indexing) #150
- New
FourThetaforecasting model #123, #156 map()method for TimeSeries #121, #166- Further improved the backtesting functions #111:
- Added support for multivariate TimeSeries and models
- Added
retrainandstrideparameters
- Custom style for matplotlib plots #191
- sMAPE metric #129
- Option to specify a
random_stateat model creation using the@random_methoddecorator on models using neural networks to allow reproducibility of results #118
Changed:
- 🔴 Refactored backtesting #184
- Moved backtesting functionalities inside
ForecastingModelandRegressionModel# old syntax: backtest_forecasting(forecasting_model, *args, **kwargs) # new syntax: forecasting_model.backtest(*args, **kwargs) # old syntax: backtest_regression(regression_model, *args, **kwargs) # new syntax: regression_model.backtest(*args, **kwargs)
- Consequently removed the
backtestingmodule
- Moved backtesting functionalities inside
- 🔴
ForecastingModelfit()method syntax using TimeSeries indexing instead of additional parameters #161# old syntax: multivariate_model.fit(multivariate_series, target_indices=[0, 1]) # new syntax: multivariate_model.fit(multivariate_series, multivariate_series[["0", "1"]]) # old syntax: univariate_model.fit(multivariate_series, component_index=2) # new syntax: univariate_model.fit(multivariate_series["2"])
Fixed:
- Solved issue of TorchForecastingModel.predict(n) throwing an error at n=1. #108
- Fixed MASE metrics #129
- [BUG] ForecastingModel.backtest: Can bypass sanity checks #188
- ForecastingModel.backtest() fails if forecast_horizon isn't provided #186
Added:
- Gradle to build docs, docker image, run tests, … #112, #127, #159
- M4 competition benchmark and notebook to the examples #138
- Check of test coverage #141
Changed:
Fixed:
- Passed the
freqparameter to theTimeSeriesconstructor in all TimeSeries generating functions #157