* It makes using all sorts of forecasting models (from ARIMA to deep learning) easy, using fit() and predict(), similar to scikit-learn.
* It's easy to fit deep learning and other ML-based models on multiple time series, potentially on big datasets too. The time series can be multivariate.
* Darts is not only wrapping existing models. We also have our own implementations, for instance of TCN (Temporal Convolutional Networks), or adaptations N-BEATS (which we extended to handle multivariate series), DeepAR and others.
* Darts makes it very easy to include past and/or future covariates as inputs for the predictions.
* Some models offer probabilistic forecasts; sometimes with the possibility to configure your favourite likelihood function (e.g. Gaussian for continuous values or Poisson for discrete values).
* Everything uses the "TimeSeries" class, which makes the API consistent across tools and models, and make it harder to make mistakes. For instance it's easy to consume the output of one model by another model, and all models can be backtested the same way.
This was also one of the areas where R always had better options than Python, but that seems to be gradually changing as well.
Darts looks very thorough and user-friendly, it makes me really want to work on a forecasting project!
It might be very helpful to readers/users if you could add a section to your documentation comparing Darts to Tslearn [0] (edit, and Sktime [1]), which already has a lot of time series models with the Scikit-learn style interface.
It would also be helpful to have some kind of writeup that explains the TimeSeries data structure and why you use that, instead of just a Series/DataFrame.
Finally - you really shouldn't say "non-Facebook alternative", because your Prophet implementation is literally a wrapper around Facebook's Prophet library. If anything, I suggest moving the Prophet, Torch, and Pmdarima dependencies to setuptools "extras", so you don't force the users to depend on those projects.
I like your suggestions of adding comparison to the few other libraries out there, as well as explaining the need for having our own TimeSeries data structure. We should try to do that sometime soon.
Concerning dependencies, we already have some dependencies as extras. "pip install darts" will install everything, but "pip install u8darts" will install only the core (without Prophet and pmdarima), or "pip install u8darts[torch]" only the core+pytorch models.
Yep, the dependence on Prophet prevented me to quickly try darts on a Windows machine because of the pystan issue with prophet:
https://github.com/facebook/prophet/issues/732
May try it later on Linux.
model = NaiveEnsembleModel([model1, model2, ...])
model.fit(my_series)
prediction = model.predict()
Will return an average prediction. Look at RegressionEnsembleModel for an ensemble model which uses a regression model to learn how to combine the individual forecasts.At the moment Darts doesn't have hierarchical reconciliation methods (if that's what you meant), but it's on the backlog :)
If you are interested in a unified interface for time series learning tasks, have a look on sktime:
https://github.com/alan-turing-institute/sktime
https://www.sktime.org/en/stable/
It provides specialized time series algorithms and scikit-learn compatible tools to build, tune and validate time series models for multiple learning problems.
We have been working hard on this open-source project for a long time and would be glad to hear your opinion.
The project sounds really cool but I will for sure get into it more once that guide is available.
conda install -c conda-forge -c pytorch pip prophet pytorch cpuonly
pip install darts
Why not install darts with conda as well?
I am getting some errors runnning the on a debian system install
when running the example script I get this: Importing plotly failed. Interactive plots will not work. /home/peter/anaconda3/envs/darts/lib/python3.7/site-packages/statsmodels/tsa/holtwinters/model.py:429: FutureWarning: After 0.13 initialization must be handled at model creation FutureWarning,
I guess its a library compatabilty but feedback is important.
conda install u8darts-all
We are working on improving our support of conda based installs.Disclaimer: studied econometrics so I will try do this on my own :D
The title of the post seems very editorialised.
First of all, being non-Facebook is hardly meaningful when we talk about open source tools. Secondly, the project doesn't advertise itself as being non-Facebook, the poster has added this. And lastly, it's false - from the prerequisites in the readme:
> Some of the models depend on prophet and torch
Submitters: the site guidelines ask you to rewrite titles only to make them less baity. Less is not more! Not in this context at least.
"Please use the original title, unless it is misleading or linkbait; don't editorialize."
Edit: it's important to note that this is an alternative to Facebook Kats, I should've probably added this in the title and that's my bad
I think we should distinguish between science/open-source and policies when we mention open-source projects.
*References*: [1]: https://facebook.github.io/prophet/#:~:text=Prophet%20is%20a....
[2]: https://github.com/unit8co/darts/blob/master/darts/models/pr...
[3]: https://github.com/unit8co/darts/blob/master/setup.py#L12
[4]: https://github.com/unit8co/darts/blob/master/requirements/pr...
TIL about Kats. My assumption was that this was a reference to Prophet, which has not been treated favorably lately on HN.