Skip to main content

Time series forecasting suite using deep learning models

Project description

Nixtla ย  Tweet ย Slack

Neural ๐Ÿง  Forecast

User friendly state-of-the-art neural forecasting models

CI Python PyPi conda-nixtla License docs

All Contributors

NeuralForecast offers a large collection of neural forecasting models focusing on their performance, usability, and robustness. The models range from classic networks like RNN to the latest transformers: MLP, LSTM, GRU,RNN,TCN, DeepAR, NBEATS, NBEATSx, NHITS, DLinear, NLinear,TFT, Informer, AutoFormer, FedFormer, PatchTST,StemGNN, and TimesNet.

Installation

You can install NeuralForecast with:

pip install neuralforecast

or

conda install -c conda-forge neuralforecast

Vist our Installation Guide for further details.

Quick Start

Minimal Example

from neuralforecast import NeuralForecast
from neuralforecast.models import NBEATS
from neuralforecast.utils import AirPassengersDF

nf = NeuralForecast(
    models = [NBEATS(input_size=24, h=12, max_steps=100)],
    freq = 'M'
)

nf.fit(df=AirPassengersDF)
nf.predict()

Get Started with this quick guide.

Why?

There is a shared belief in Neural forecasting methods' capacity to improve forecasting pipeline's accuracy and efficiency.

Unfortunately, available implementations and published research are yet to realize neural networks' potential. They are hard to use and continuously fail to improve over statistical methods while being computationally prohibitive. For this reason, we created NeuralForecast, a library favoring proven accurate and efficient models focusing on their usability.

Features

  • Fast and accurate implementations of MLP, LSTM, GRU,RNN,TCN, DeepAR, NBEATS, NBEATSx, NHITS, DLinear,TFT, Informer, AutoFormer, FedFormer, PatchTST,StemGNN, and TimesNet. See the entire collection here.
  • Support for exogenous variables and static covariates.
  • Interpretability methods for trend, seasonality and exogenous components.
  • Probabilistic Forecasting with adapters for quantile losses and parametric distributions.
  • Train and Evaluation Losses with scale-dependent, percentage and scale independent errors, and parametric likelihoods.
  • Automatic Model Selection with distributed automatic hyperparameter tuning.
  • Familiar sklearn syntax: .fit and .predict.

Highlights

  • Official NHITS implementation, published at AAAI 2023. See paper and experiments.
  • Official NBEATSx implementation, published at the International Journal of Forecasting. See paper.
  • Unified withStatsForecast, MLForecast, and HierarchicalForecast interface NeuralForecast().fit(Y_df).predict(), inputs and outputs.
  • Built-in integrations with utilsforecast and coreforecast for visualization and data-wrangling efficient methods.
  • Integrations with Ray and Optuna for automatic hyperparameter optimization.
  • Predict with little to no history using Transfer learning. Check the experiments here.

Missing something? Please open an issue or write us in Slack

Examples and Guides

The documentation page contains all the examples and tutorials.

๐Ÿ“ˆ Automatic Hyperparameter Optimization: Easy and Scalable Automatic Hyperparameter Optimization with Auto models on Ray or Optuna.

๐ŸŒก๏ธ Exogenous Regressors: How to incorporate static or temporal exogenous covariates like weather or prices.

๐Ÿ”Œ Transformer Models: Learn how to forecast with many state-of-the-art Transformers models.

๐Ÿ‘‘ Hierarchical Forecasting: forecast series with very few non-zero observations.

๐Ÿ‘ฉโ€๐Ÿ”ฌ Add Your Own Model: Learn how to add a new model to the library.

Models

Model Structure Sampling Point Forecast Probabilistic Forecast Exogenous features Auto Model
LSTM RNN recurrent โœ… โœ… โœ… โœ…
GRU RNN recurrent โœ… โœ… โœ… โœ…
RNN RNN recurrent โœ… โœ… โœ… โœ…
DilatedRNN RNN recurrent โœ… โœ… โœ… โœ…
DeepAR RNN recurrent โœ… โœ… โœ…
TCN CNN recurrent โœ… โœ… โœ… โœ…
TimesNet CNN windows โœ… โœ… โœ…
DLinear Linear windows โœ… โœ… โœ…
MLP MLP windows โœ… โœ… โœ… โœ…
NBEATS MLP windows โœ… โœ… โœ…
NBEATSx MLP windows โœ… โœ… โœ… โœ…
NHITS MLP windows โœ… โœ… โœ… โœ…
TFT Transformer windows โœ… โœ… โœ… โœ…
Transformer Transformer windows โœ… โœ… โœ… โœ…
Informer Transformer windows โœ… โœ… โœ… โœ…
Autoformer Transformer windows โœ… โœ… โœ… โœ…
FEDFormer Transformer windows โœ… โœ… โœ… โœ…
PatchTST Transformer windows โœ… โœ… โœ…
StemGNN GNN multivariate โœ… โœ…

Missing a model? Please open an issue or write us in Slack

How to contribute

If you wish to contribute to the project, please refer to our contribution guidelines.

References

This work is highly influenced by the fantastic work of previous contributors and other scholars on the neural forecasting methods presented here. We want to highlight the work of Boris Oreshkin, Slawek Smyl, Bryan Lim, and David Salinas. We refer to Benidis et al. for a comprehensive survey of neural forecasting methods.

Contributors โœจ

Thanks goes to these wonderful people (emoji key):

fede
fede

๐Ÿ’ป ๐Ÿšง
Cristian Challu
Cristian Challu

๐Ÿ’ป ๐Ÿšง
Josรฉ Morales
Josรฉ Morales

๐Ÿ’ป ๐Ÿšง
mergenthaler
mergenthaler

๐Ÿ“– ๐Ÿ’ป
Kin
Kin

๐Ÿ’ป ๐Ÿ› ๐Ÿ”ฃ
Greg DeVos
Greg DeVos

๐Ÿค”
Alejandro
Alejandro

๐Ÿ’ป
stefanialvs
stefanialvs

๐ŸŽจ
Ikko Ashimine
Ikko Ashimine

๐Ÿ›
vglaucus
vglaucus

๐Ÿ›
Pietro Monticone
Pietro Monticone

๐Ÿ›

This project follows the all-contributors specification. Contributions of any kind welcome!

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

neuralforecast-1.7.1.tar.gz (155.7 kB view hashes)

Uploaded Source

Built Distribution

neuralforecast-1.7.1-py3-none-any.whl (213.6 kB view hashes)

Uploaded Python 3

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