Skip to main content

Explainable Forecasting at Scale

Project description

GitHub release (latest SemVer) Pypi_Version Python Version Code style: black License Tests codecov Slack Downloads

NP-logo-wide_cut

Please note that the project is still in beta phase. Please report any issues you encounter or suggestions you have. We will do our best to address them quickly. Contributions are very welcome!

NeuralProphet

A Neural Network based Time-Series model, inspired by Facebook Prophet and AR-Net, built on PyTorch.

Documentation

The documentation page may not we entirely up to date. Docstrings should be reliable, please refer to those when in doubt. We are working on an improved documentation. We appreciate any help to improve and update the docs.

For a visual introduction to NeuralProphet, view this presentation.

Contribute

We compiled a Contributing to NeuralProphet page with practical instructions and further resources to help you become part of the family.

Community

Discussion and Help

If you have any question or suggestion, you can participate with our community right here on Github

Slack Chat

We also have an active Slack community. Come and join the conversation!

Tutorials

Open All Collab

There are several example notebooks to help you get started.

You can find the datasets used in the tutorials, including data preprocessing examples, in our neuralprophet-data repository.

Please refer to our documentation page for more resources.

Minimal example

from neuralprophet import NeuralProphet

After importing the package, you can use NeuralProphet in your code:

m = NeuralProphet()
metrics = m.fit(df)
forecast = m.predict(df)

You can visualize your results with the inbuilt plotting functions:

fig_forecast = m.plot(forecast)
fig_components = m.plot_components(forecast)
fig_model = m.plot_parameters()

If you want to forecast into the unknown future, extend the dataframe before predicting:

m = NeuralProphet().fit(df, freq="D")
df_future = m.make_future_dataframe(df, periods=30)
forecast = m.predict(df_future)
fig_forecast = m.plot(forecast)

Install

You can now install neuralprophet directly with pip:

pip install neuralprophet

Install options

If you plan to use the package in a Jupyter notebook, we recommended to install the 'live' version:

pip install neuralprophet[live]

This will allow you to enable plot_live_loss in the fit function to get a live plot of train (and validation) loss.

If you would like the most up to date version, you can instead install direclty from github:

git clone <copied link from github>
cd neural_prophet
pip install .

Features

Model components

  • Autoregression: Autocorrelation modelling - linear or NN (AR-Net)
  • Trend: Piecewise linear trend with optional automatic changepoint detection
  • Seasonality: Fourier terms at different periods such as yearly, daily, weekly, hourly.
  • Lagged regressors: Lagged observations (e.g temperature sensor) - linear or NN
  • Future regressors: In advance known features (e.g. temperature forecast) - linear
  • Events: Country holidays & recurring custom events

Framework features

  • Multiple time series: Fit a global/glocal model with (partially) shared model parameters
  • Uncertainty: Estimate values of specific quantiles - Quantile Regression
  • Regularize modelling components
  • Plotting of forecast components, model coefficients and more
  • Time series crossvalidation utility
  • Model checkpointing and validation

Coming soon:tm:

  • Cross-relation of lagged regressors
  • Cross-relation and non-linear modelling of future regressors
  • Static featues / Time series featurization
  • Logistic growth for trend component.
  • Model bias modelling / correction with secondary model
  • Multimodal seasonality

For a list of past changes, please refer to the releases page.

The vision for future development can be seen at Development Timeline (partially outdated).

Cite

Please cite NeuralProphet in your publications if it helps your research:

@misc{triebe2021neuralprophet,
      title={NeuralProphet: Explainable Forecasting at Scale}, 
      author={Oskar Triebe and Hansika Hewamalage and Polina Pilyugina and Nikolay Laptev and Christoph Bergmeir and Ram Rajagopal},
      year={2021},
      eprint={2111.15397},
      archivePrefix={arXiv},
      primaryClass={cs.LG}
}

About

NeuralProphet is and open-source community project, supported by awesome people like you. If you are interested in joining the project, please feel free to reach out to me (Oskar) - you can find my email on the NeuralProphet Paper.

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

neuralprophet-0.5.0rc2.tar.gz (20.7 MB view hashes)

Uploaded Source

Built Distribution

neuralprophet-0.5.0rc2-py3-none-any.whl (111.7 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