A python library for easy manipulation and forecasting time series.
Project description
Time Series Made Easy in Python
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 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.
Install
We recommend to first setup a clean python environment for your project with at least python 3.6 using your favorite tool (conda, venv, virtualenv with or without virtualenvwrapper).
Quick Install
Once your environement is setup you can install darts using the pip package:
pip install u8darts
Step-by-step Install
For more detailed install instructions you can refer to our installation guide at the end of this page.
Example Usage
Create TimeSeries
object from a Pandas DataFrame, and split in train/validation series:
import pandas as pd
from darts import TimeSeries
df = pd.read_csv('AirPassengers.csv', delimiter=",")
series = TimeSeries.from_dataframe(df, 'Month', '#Passengers')
train, val = series.split_after(pd.Timestamp('19590101'))
The dataset used in this example can be downloaded from this link.
Fit an exponential smoothing model, and make a prediction over the validation series' duration:
from darts.models import ExponentialSmoothing
model = ExponentialSmoothing()
model.fit(train)
prediction = model.predict(len(val))
Plot:
import matplotlib.pyplot as plt
series.plot(label='actual', lw=3)
prediction.plot(label='forecast', lw=3)
plt.legend()
plt.xlabel('Year')
We invite you to go over the example notebooks in the examples
directory.
Documentation
The documentation of the API and models is available here.
Features
Currently, the library contains the following features:
Forecasting Models:
- Exponential smoothing,
- ARIMA & auto-ARIMA,
- Facebook Prophet,
- Theta method,
- FFT (Fast Fourier Transform),
- Recurrent neural networks (vanilla RNNs, GRU, and LSTM variants),
- Temporal convolutional network.
Preprocessing: Transformer tool for easily scaling / normalizing time series.
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 several other time series (e.g., external regressors), using arbitrary regressive models.
Multivariate Support: Tools to create, manipulate and forecast multivariate time series.
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) make sure you can't find anything related in issues. If there is no on-going effort on what you plan to do then we recommend to do the following:
- Create an issue, describe how you would attempt to solve it, and if possible wait for a discussion.
- Fork the repository.
- Clone the forked repository locally.
- Create a clean python env and install requirements with pip:
pip install -r requirements/main.txt -r requirements/dev.txt -r requirements/release.txt
- Create a new branch with your fix / feature from the develop branch.
- Create a pull request from your new branch to the develop branch.
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
Our direct dependencies include fbprophet
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 fbprophet and torch, then skip to Install darts
To create a conda environment for Python 3.7 (after installing conda):
conda create --name <env-name> python=3.7
Don't forget to activate your virtual environment
conda activate <env-name>
MAC
conda install -c conda-forge -c pytorch pip fbprophet pytorch
Linux and Windows
conda install -c conda-forge -c pytorch pip fbprophet pytorch cpuonly
Install darts
pip install u8darts
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:
cd scripts
./build_docker.sh && ./run_docker.sh
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file u8darts-0.2.0.tar.gz
.
File metadata
- Download URL: u8darts-0.2.0.tar.gz
- Upload date:
- Size: 2.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3.post20200330 requests-toolbelt/0.9.1 tqdm/4.44.1 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5c1d6972893d30e29ec1139b7921858f3eb1fdbbc353337547907c179494619 |
|
MD5 | 289e6c2d4fd3d77f2d9a01a73a2e23d1 |
|
BLAKE2b-256 | 3760ced4487223795529a0f0f50baf5ff278f1b53381070068d5c4c41f0bf50e |
File details
Details for the file u8darts-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: u8darts-0.2.0-py3-none-any.whl
- Upload date:
- Size: 84.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3.post20200330 requests-toolbelt/0.9.1 tqdm/4.44.1 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6a69bd3794ac557fa4f8b382bb49862a8a70cbc9a9f4a552cb83112b81a8586 |
|
MD5 | 52a8b15d2ad40ebca635f0a513d2edd8 |
|
BLAKE2b-256 | 4ee4e614ea6186c7d77fbf6ffcab800ba2db9a1fe0575f96fa19de4d668a1163 |