Skip to main content

A python library for easy manipulation and forecasting time series.

Project description

darts: Easy manipulation and forecasting of time series

darts


PyPI version GitHub Workflow Status Supported versions Docker Image Version (latest by date) PyPI - Downloads GitHub Release Date

darts is a python library for easy manipulation and forecasting 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

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.

Example Usage

Create TimeSeries object from a Pandas DataFrame, and split in train/validation series:

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'))

Fit an exponential smoothing model, and make a prediction over the validation series' duration:

from darts import ExponentialSmoothing

model = ExponentialSmoothing()
model.fit(train)
prediction = model.predict(len(val))

Plot:

series.plot(label='actual', lw=3)
prediction.plot(label='forecast', lw=3)
plt.legend()
plt.xlabel('Year')

example { width=100% }

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.

Contribute

The development is ongoing, and there are many new features that we want to add. We welcome pull requests and issues on github.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

u8darts-0.1.0.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

u8darts-0.1.0-py3-none-any.whl (76.3 kB view details)

Uploaded Python 3

File details

Details for the file u8darts-0.1.0.tar.gz.

File metadata

  • Download URL: u8darts-0.1.0.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1.post20200604 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.7

File hashes

Hashes for u8darts-0.1.0.tar.gz
Algorithm Hash digest
SHA256 41e56e3948e6705641ecc7b67d3213ccd05a417163c1f292e9cb90503b31a2bb
MD5 c782ec9c3aa03126a41ffd76f6e6fdef
BLAKE2b-256 9c4a9446592690a393eac13065bb77d4487bd45b3865f78044508edd450d78dc

See more details on using hashes here.

File details

Details for the file u8darts-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: u8darts-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 76.3 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/47.1.1.post20200604 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.7

File hashes

Hashes for u8darts-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3babf27002d8154bbea696fa47a09d4c9158ef88885150240ab2193554f12643
MD5 3e25cf484003375627cf77b82b574db2
BLAKE2b-256 dc22215c43542e6aea4e68ad23cf2aa6974f62093dbe163462393c7e4564868a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page