https://github.com/nixtla/neuralforecast

Scalable and user friendly neural :brain: forecasting algorithms.

https://github.com/nixtla/neuralforecast

Science Score: 46.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org, sciencedirect.com
  • Committers with academic emails
    1 of 49 committers (2.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.1%) to scientific vocabulary

Keywords

baselines baselines-zoo deep-learning deep-neural-networks deepar esrnn forecasting hierarchical-forecasting hint machine-learning nbeats nbeatsx neural-network nhits probabilistic-forecasting pytorch robust-regression tft time-series transformer

Keywords from Contributors

prediction automl econometrics anomaly-detection arima ets exponential-smoothing fbprophet mstl naive
Last synced: 5 months ago · JSON representation

Repository

Scalable and user friendly neural :brain: forecasting algorithms.

Basic Info
Statistics
  • Stars: 3,716
  • Watchers: 38
  • Forks: 451
  • Open Issues: 118
  • Releases: 26
Topics
baselines baselines-zoo deep-learning deep-neural-networks deepar esrnn forecasting hierarchical-forecasting hint machine-learning nbeats nbeatsx neural-network nhits probabilistic-forecasting pytorch robust-regression tft time-series transformer
Created almost 5 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct

README.md

Nixtla   Tweet  Slack

Neural 🧠 Forecast

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

[![CI](https://github.com/Nixtla/neuralforecast/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/Nixtla/neuralforecast/actions/workflows/ci.yaml) [![Python](https://img.shields.io/pypi/pyversions/neuralforecast)](https://pypi.org/project/neuralforecast/) [![PyPi](https://img.shields.io/pypi/v/neuralforecast?color=blue)](https://pypi.org/project/neuralforecast/) [![conda-nixtla](https://img.shields.io/conda/vn/conda-forge/neuralforecast?color=seagreen&label=conda)](https://anaconda.org/conda-forge/neuralforecast) [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://github.com/Nixtla/neuralforecast/blob/main/LICENSE) [![docs](https://img.shields.io/website-up-down-green-red/http/nixtla.github.io/neuralforecast.svg?label=docs)](https://nixtla.github.io/neuralforecast/) [![All Contributors](https://img.shields.io/badge/all_contributors-11-orange.svg?style=flat-square)](#contributors-) **NeuralForecast** offers a large collection of neural forecasting models focusing on their performance, usability, and robustness. The models range from classic networks like RNNs to the latest transformers: `MLP`, `LSTM`, `GRU`, `RNN`, `TCN`, `TimesNet`, `BiTCN`, `DeepAR`, `NBEATS`, `NBEATSx`, `NHITS`, `TiDE`, `DeepNPTS`, `TSMixer`, `TSMixerx`, `MLPMultivariate`, `DLinear`, `NLinear`, `TFT`, `Informer`, `AutoFormer`, `FedFormer`, `PatchTST`, `iTransformer`, `StemGNN`, and `TimeLLM`.

Installation

You can install NeuralForecast with:

python pip install neuralforecast

or

python conda install -c conda-forge neuralforecast

Vist our Installation Guide for further details.

Quick Start

Minimal Example

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

nf = NeuralForecast( models = [NBEATS(inputsize=24, h=12, maxsteps=100)], freq = 'ME' )

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 more than 30 state-of-the-art models. 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

See the entire collection here.

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.

🙏 How to cite

If you enjoy or benefit from using these Python implementations, a citation to the repository will be greatly appreciated.

bibtex @misc{olivares2022library_neuralforecast, author={Kin G. Olivares and Cristian Challú and Azul Garza and Max Mergenthaler Canseco and Artur Dubrawski}, title = {{NeuralForecast}: User friendly state-of-the-art neural forecasting models.}, year={2022}, howpublished={{PyCon} Salt Lake City, Utah, US 2022}, url={https://github.com/Nixtla/neuralforecast} }

Contributors ✨

Thanks goes to these wonderful people (emoji key): <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> <!-- prettier-ignore-start --> <!-- markdownlint-disable -->

azul
azul

💻 🚧
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!

Owner

  • Name: Nixtla
  • Login: Nixtla
  • Kind: organization
  • Email: ops@nixtla.io
  • Location: United States of America

Open Source Time Series Ecosystem

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 1,006
  • Total Committers: 49
  • Avg Commits per committer: 20.531
  • Development Distribution Score (DDS): 0.629
Past Year
  • Commits: 95
  • Committers: 14
  • Avg Commits per committer: 6.786
  • Development Distribution Score (DDS): 0.695
Top Committers
Name Email Commits
FedericoGarza f****z@g****m 373
kdgutier k****s@g****m 143
Cristian c****u@g****m 96
mergenthaler m****m@g****m 79
José Morales j****2@g****m 75
Olivier Sprangers 4****t 45
allcontributors[bot] 4****] 34
Marco m****o@n****o 24
dependabot[bot] 4****] 14
David Luo 6****o 11
npredrag d****4@g****m 11
FedericoGarza F****a@g****m 10
Ubuntu u****u@i****l 10
Ubuntu u****u@i****l 9
t-minus g****g@g****m 9
alejandroxag a****4@g****m 8
kdgutier k****r@g****g 6
Stefania La Vattiata s****a@K****l 5
shibzhou s****3@g****m 5
jasminerienecker 9****r 5
Kin Gtz Olivares k****s@K****l 3
Tyler Nisonoff t****f@g****m 3
Mariana Menchero García 4****o 2
YanisA 8****4 1
Vinish M v****a@g****m 1
Tyler Blume t****e@h****m 1
Tracy Teal t****l@g****m 1
Todd Gleason t****k 1
Ronan McCarter 6****r 1
Pietro Monticone 3****e 1
and 19 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 443
  • Total pull requests: 504
  • Average time to close issues: 2 months
  • Average time to close pull requests: 15 days
  • Total issue authors: 270
  • Total pull request authors: 55
  • Average comments per issue: 2.09
  • Average comments per pull request: 2.04
  • Merged pull requests: 382
  • Bot issues: 0
  • Bot pull requests: 27
Past Year
  • Issues: 107
  • Pull requests: 165
  • Average time to close issues: 16 days
  • Average time to close pull requests: 9 days
  • Issue authors: 82
  • Pull request authors: 23
  • Average comments per issue: 1.66
  • Average comments per pull request: 1.73
  • Merged pull requests: 113
  • Bot issues: 0
  • Bot pull requests: 24
Top Authors
Issue Authors
  • cchallu (22)
  • kdgutier (19)
  • iamyihwa (8)
  • candalfigomoro (8)
  • sdmishra123 (7)
  • ZhikangLai (7)
  • PotosnakW (7)
  • jmoralez (6)
  • Antoine-Schwartz (6)
  • LeonTing1010 (6)
  • yarnabrina (5)
  • elephaint (5)
  • kkckk1110 (5)
  • TDL77 (4)
  • tinased95 (4)
Pull Request Authors
  • jmoralez (95)
  • elephaint (90)
  • marcopeix (66)
  • cchallu (40)
  • kdgutier (31)
  • dependabot[bot] (27)
  • JQGoh (21)
  • FedericoGarza (13)
  • jasminerienecker (12)
  • carusyte (8)
  • LeonEthan (6)
  • AzulGarza (6)
  • cargecla1 (6)
  • tylernisonoff (5)
  • dluuo (4)
Top Labels
Issue Labels
bug (183) enhancement (88) feature (78) awaiting response (51) documentation (49) question (12) help wanted (11) fix (4) ⚔️ Quest (4) good first issue (3) requested (3) discussion (3)
Pull Request Labels
fix (54) feature (37) dependencies (35) enhancement (31) documentation (24) bug (7) ⚔️ Quest (7) breaking change (3) losses (1)

Packages

  • Total packages: 4
  • Total downloads:
    • pypi 90,963 last-month
  • Total docker downloads: 260
  • Total dependent packages: 9
    (may contain duplicates)
  • Total dependent repositories: 21
    (may contain duplicates)
  • Total versions: 95
  • Total maintainers: 3
pypi.org: neuralforecast

Time series forecasting suite using deep learning models

  • Versions: 33
  • Dependent Packages: 8
  • Dependent Repositories: 21
  • Downloads: 90,963 Last month
  • Docker Downloads: 260
Rankings
Stargazers count: 1.6%
Dependent packages count: 2.2%
Average: 2.8%
Downloads: 2.9%
Docker downloads count: 3.1%
Dependent repos count: 3.2%
Forks count: 3.7%
Maintainers (3)
Last synced: 6 months ago
proxy.golang.org: github.com/nixtla/neuralforecast
  • Versions: 28
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 6.5%
Average: 6.7%
Dependent repos count: 7.0%
Last synced: 6 months ago
proxy.golang.org: github.com/Nixtla/neuralforecast
  • Versions: 28
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 6.5%
Average: 6.7%
Dependent repos count: 7.0%
Last synced: 6 months ago
conda-forge.org: neuralforecast

State-of-the-art time series forecasting for PyTorch. `NeuralForecast` is a Python library for time series forecasting with deep learning models. It includes *benchmark datasets*, *data-loading utilities*, *evaluation functions*, statistical *tests*, univariate *model benchmarks* and *SOTA* models implemented in PyTorch and PyTorchLightning. PyPI: [https://pypi.org/project/neuralforecast/](https://pypi.org/project/neuralforecast/)

  • Versions: 6
  • Dependent Packages: 1
  • Dependent Repositories: 0
Rankings
Stargazers count: 12.0%
Forks count: 18.1%
Average: 23.2%
Dependent packages count: 28.8%
Dependent repos count: 34.0%
Last synced: 6 months ago