https://github.com/unit8co/darts Skip to content Sign up * Why GitHub? Features - + Mobile - + Actions - + Codespaces - + Packages - + Security - + Code review - + Issues - + Integrations - + GitHub Sponsors - + Customer stories- * Team * Enterprise * Explore + Explore GitHub - Learn and contribute + Topics - + Collections - + Trending - + Learning Lab - + Open source guides - Connect with others + The ReadME Project - + Events - + Community forum - + GitHub Education - + GitHub Stars program - * Marketplace * Pricing Plans - + Compare plans - + Contact Sales - + Education - [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this organization All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} unit8co / darts * Notifications * Star 1.7k * Fork 153 A python library for easy manipulation and forecasting of time series. unit8co.github.io/darts/ Apache-2.0 License 1.7k stars 153 forks Star Notifications * Code * Issues 21 * Pull requests 2 * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 31 branches 16 tags Code * Clone HTTPS GitHub CLI [https://github.com/u] Use Git or checkout with SVN using the web URL. [gh repo clone unit8c] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching Xcode If nothing happens, download Xcode and try again. Go back Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @hrzn @unit8-bot hrzn and unit8-bot Release 0.9.1 ... 8c36269 Jul 17, 2021 Release 0.9.1 8c36269 Git stats * 409 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github Fix/requirements caching (#380) Jul 14, 2021 conda_recipe Release 0.9.1 Jul 17, 2021 darts Release 0.9.1 Jul 17, 2021 datasets WIP Feat/datasets (#323) May 19, 2021 docs Release 0.9.1 Jul 17, 2021 examples Fix some documentation issues (#392) Jul 15, 2021 gradle/wrapper Feat/gradle (#112) Jun 30, 2020 requirements Fix some documentation issues (#392) Jul 15, 2021 static/images Feat/update readme (#376) Jul 9, 2021 .bumpversion.cfg Release 0.9.1 Jul 17, 2021 .dockerignore Remove warnings from docs (#82) May 14, 2020 .gitattributes Feat/gradle (#112) Jun 30, 2020 .gitignore Fix/requirements caching (#380) Jul 14, 2021 CHANGELOG.md changelog for 0.9.1 (#401) Jul 17, 2021 CONTRIBUTE.md added contribution guidelines (#321) May 6, 2021 Dockerfile fix dockerfile Feb 3, 2021 LICENSE feat(License): finalize terms Dec 3, 2019 MANIFEST.in Fix make_dists.sh not working with new build (#390) Jul 15, 2021 README.md Fix some documentation issues (#392) Jul 15, 2021 build.gradle Fix/requirements caching (#380) Jul 14, 2021 coverage.sh feature/coverage (#141) Jul 14, 2020 gradlew Feat/gradle (#112) Jun 30, 2020 gradlew.bat Feat/gradle (#112) Jun 30, 2020 make_dists.sh Feature/darts package (#300) Apr 5, 2021 pyproject.toml Fix make_dists.sh not working with new build (#390) Jul 15, 2021 settings.gradle Feat/gradle (#112) Jun 30, 2020 setup.cfg Add missing dates (#78) May 13, 2020 setup.py Release 0.9.1 Jul 17, 2021 setup_u8darts.py bump setup u8darts Jul 17, 2021 View code [ ] Time Series Made Easy in Python Documentation High Level Introductions Install Example Usage Features Forecasting Models Contribute Contact Us Installation Guide Preconditions MAC Linux and Windows Install darts Running the examples only, without installing: Tests Documentation README.md Time Series Made Easy in Python darts --------------------------------------------------------------------- PyPI version GitHub Workflow Status Supported versions Docker Image Version (latest by date) GitHub Release Date Downloads Downloads darts is a Python library for easy manipulation and forecasting of time series. It contains a variety of models, from classics such as ARIMA to deep neural networks. The models can all be used in the same way, using fit() and predict() functions, similar to scikit-learn. The library also makes it easy to backtest models, and combine the predictions of several models and external regressors. Darts supports both univariate and multivariate time series and models. The neural networks can be trained on multiple time series, and some of the models offer probabilistic forecasts. Documentation * Examples & Tutorials * API Documentation High Level Introductions * Introductory Blog Post * Introductory Video Install We recommend to first setup a clean Python environment for your project with at least Python 3.7 using your favorite tool (conda, venv, virtualenv with or without virtualenvwrapper). Once your environment is set up you can install darts using pip: pip install darts For more detailed install instructions you can refer to our installation guide at the end of this page. Example Usage Create a TimeSeries object from a Pandas DataFrame, and split it in train/validation series: import pandas as pd from darts import TimeSeries # Read a pandas DataFrame df = pd.read_csv('AirPassengers.csv', delimiter=",") # Create a TimeSeries, specifying the time and value columns series = TimeSeries.from_dataframe(df, 'Month', '#Passengers') # Set aside the last 36 months as a validation series train, val = series[:-36], series[-36:] Fit an exponential smoothing model, and make a (probabilistic) prediction over the validation series' duration: from darts.models import ExponentialSmoothing model = ExponentialSmoothing() model.fit(train) prediction = model.predict(len(val), num_samples=1000) Plot the median, 5th and 95th percentiles: import matplotlib.pyplot as plt series.plot() prediction.plot(label='forecast', low_quantile=0.05, high_quantile=0.95) plt.legend() darts forecast example We invite you to go over the example and tutorial notebooks in the examples directory. Features Currently, the library contains the following features: Forecasting Models: A large collection of forecasting models; from statistical models (such as ARIMA) to deep learning models (such as N-BEATS). See table of models below. Data processing: Tools to easily apply (and revert) common transformations on time series data (scaling, boxcox, ...) Metrics: A variety of metrics for evaluating time series' goodness of fit; from R2-scores to Mean Absolute Scaled Error. Backtesting: Utilities for simulating historical forecasts, using moving time windows. Regressive Models: Possibility to predict a time series from lagged versions of itself and of some external covariate series, using arbitrary regression models (e.g. scikit-learn models) Multivariate Support: Tools to create, manipulate and forecast multivariate time series. Probabilistic Support: TimeSeries objects can (optionally) represent stochastic time series; this can for instance be used to get confidence intervals. Filtering Models: Darts offers three filtering models: KalmanFilter, GaussianProcessFilter, and MovingAverage, which allow to filter time series, and in some cases obtain probabilistic inferences of the underlying states/values. Forecasting Models Here's a breakdown of the forecasting models currently implemented in Darts. We are constantly working on bringing more models and features. Multiple-series Past-observed Future-known Model Univariate Multivariate Probabilistic training covariates covariates support support ARIMA x x VARIMA x x AutoARIMA x ExponentialSmoothing x x Theta and FourTheta x Prophet x FFT (Fast Fourier x Transform) Regression Models (incl RandomForest and x LinearRegressionModel) RNNModel (incl. LSTM and GRU); equivalent x x x x x x to DeepAR in its probabilistic version BlockRNNModel (incl. x x x x ( x ) LSTM and GRU) NBEATSModel x x x x ( x ) TCNModel x x x x x ( x ) TransformerModel x x x x ( x ) Naive Baselines x Contribute The development is ongoing, and there are many new features that we want to add. We welcome pull requests and issues on GitHub. Before working on a contribution (a new feature or a fix), check our contribution guidelines. Contact Us If what you want to tell us is not a suitable github issue, feel free to send us an email at darts@unit8.co for darts related matters or info@unit8.co for any other inquiries. Installation Guide Preconditions Some of the models depend on prophet and torch, which have non-Python dependencies. A Conda environment is thus recommended because it will handle all of those in one go. The following steps assume running inside a conda environment. If that's not possible, first follow the official instructions to install prophet and torch, then skip to Install darts To create a conda environment for Python 3.7 (after installing conda ): conda create --name python=3.7 Don't forget to activate your virtual environment conda activate MAC conda install -c conda-forge -c pytorch pip prophet pytorch Linux and Windows conda install -c conda-forge -c pytorch pip prophet pytorch cpuonly Install darts Install Darts with all available models: pip install darts. As some models have relatively heavy (or non-Python) dependencies, we also maintain the u8darts package, which provides the following alternate lighter install options: * Install core only (without neural networks, Prophet or AutoARIMA): pip install u8darts * Install core + neural networks (PyTorch): pip install 'u8darts [torch]' * Install core + Facebook Prophet: pip install 'u8darts[prophet]' * Install core + AutoARIMA: pip install 'u8darts[pmdarima]' Running the examples only, without installing: If the conda setup is causing too many problems, we also provide a Docker image with everything set up for you and ready-to-use Python notebooks with demo examples. To run the example notebooks without installing our libraries natively on your machine, you can use our Docker image: ./gradlew docker && ./gradlew dockerRun Then copy and paste the URL provided by the docker container into your browser to access Jupyter notebook. For this setup to work you need to have a Docker service installed. You can get it at Docker website. Tests The gradle setup works best when used in a python environment, but the only requirement is to have pip installed for Python 3+ To run all tests at once just run ./gradlew test_all alternatively you can run ./gradlew unitTest_all # to run only unittests ./gradlew coverageTest # to run coverage ./gradlew lint # to run linter To run the tests for specific flavours of the library, replace _all with _core, _prophet, _pmdarima or _torch. Documentation To build documantation locally just run ./gradlew buildDocs After that docs will be available in ./docs/build/html directory. You can just open ./docs/build/html/index.html using your favourite browser. About A python library for easy manipulation and forecasting of time series. unit8co.github.io/darts/ Topics python machine-learning deep-learning time-series forecasting Resources Readme License Apache-2.0 License Releases 16 Release patch 0.9.1 Latest Jul 17, 2021 + 15 releases Packages 0 No packages published Used by 7 * @altcp * @nystrand1 * @ssantoshp * @montali * @dhorpynchenko Contributors 30 * @hrzn * @pennfranc * @endrjuskr * @LeoTafti * @TheMP * @MounBen * @Droxef * @inverniz * @camilaagw * @guillaumeraille * @piaz97 + 19 contributors Languages * Python 99.8% * Other 0.2% * (c) 2021 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. 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.