All Projects → ourownstory → Neural_prophet

ourownstory / Neural_prophet

Licence: mit
NeuralProphet - A simple forecasting model based on Neural Networks in PyTorch

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Neural prophet

Sweep
Extending broom for time series forecasting
Stars: ✭ 143 (-87.29%)
Mutual labels:  forecast, time-series, timeseries, prediction
modeltime.ensemble
Time Series Ensemble Forecasting
Stars: ✭ 65 (-94.22%)
Mutual labels:  timeseries, time-series, forecast, forecasting
Timetk
A toolkit for working with time series in R
Stars: ✭ 371 (-67.02%)
Mutual labels:  forecast, time-series, timeseries, forecasting
Btctrading
Time Series Forecast with Bitcoin value, to detect upward/down trends with Machine Learning Algorithms
Stars: ✭ 99 (-91.2%)
Mutual labels:  forecast, time-series, prediction
Tcdf
Temporal Causal Discovery Framework (PyTorch): discovering causal relationships between time series
Stars: ✭ 217 (-80.71%)
Mutual labels:  timeseries, prediction, forecasting
Forecasting
Time Series Forecasting Best Practices & Examples
Stars: ✭ 2,123 (+88.71%)
Mutual labels:  artificial-intelligence, time-series, forecasting
Java Timeseries
Time series analysis in Java
Stars: ✭ 155 (-86.22%)
Mutual labels:  time-series, timeseries, forecasting
timemachines
Predict time-series with one line of code.
Stars: ✭ 342 (-69.6%)
Mutual labels:  timeseries, time-series, prediction
Forecastml
An R package with Python support for multi-step-ahead forecasting with machine learning and deep learning algorithms
Stars: ✭ 101 (-91.02%)
Mutual labels:  forecast, time-series, forecasting
Deep XF
Package towards building Explainable Forecasting and Nowcasting Models with State-of-the-art Deep Neural Networks and Dynamic Factor Model on Time Series data sets with single line of code. Also, provides utilify facility for time-series signal similarities matching, and removing noise from timeseries signals.
Stars: ✭ 83 (-92.62%)
Mutual labels:  timeseries, time-series, forecasting
arima
ARIMA, SARIMA, SARIMAX and AutoARIMA models for time series analysis and forecasting in the browser and Node.js
Stars: ✭ 31 (-97.24%)
Mutual labels:  timeseries, prediction, forecasting
Rnn Time Series Anomaly Detection
RNN based Time-series Anomaly detector model implemented in Pytorch.
Stars: ✭ 718 (-36.18%)
Mutual labels:  forecast, time-series, prediction
mlforecast
Scalable machine 🤖 learning for time series forecasting.
Stars: ✭ 96 (-91.47%)
Mutual labels:  time-series, forecast, forecasting
gpu accelerated forecasting modeltime gluonts
GPU-Accelerated Deep Learning for Time Series using Modeltime GluonTS (Learning Lab 53). Event sponsors: Saturn Cloud, NVIDIA, & Business Science.
Stars: ✭ 20 (-98.22%)
Mutual labels:  time-series, forecast, forecasting
foot
foot是一个集足球数据采集器,简单分析的项目.AI足球球探为程序全自动处理,全程无人为参与干预足球分析足球预测程序.程序根据各大指数多维度数据,结合作者多年足球分析经验,精雕细琢,集天地之灵气,汲日月之精华,历时七七四十九天,经Bug九九八十一个,编码而成.有兴趣的朋友,可以关注一下公众号AI球探(微信号ai00268).
Stars: ✭ 96 (-91.47%)
Mutual labels:  prediction, forecast, forecasting
magi
📈 high level wrapper for parallel univariate time series forecasting 📉
Stars: ✭ 17 (-98.49%)
Mutual labels:  time-series, forecast, forecasting
Arch
ARCH models in Python
Stars: ✭ 660 (-41.33%)
Mutual labels:  time-series, forecasting
Imageai
A python library built to empower developers to build applications and systems with self-contained Computer Vision capabilities
Stars: ✭ 6,734 (+498.58%)
Mutual labels:  artificial-intelligence, prediction
Darts
A python library for easy manipulation and forecasting of time series.
Stars: ✭ 760 (-32.44%)
Mutual labels:  time-series, forecasting
Ad examples
A collection of anomaly detection methods (iid/point-based, graph and time series) including active learning for anomaly detection/discovery, bayesian rule-mining, description for diversity/explanation/interpretability. Analysis of incorporating label feedback with ensemble and tree-based detectors. Includes adversarial attacks with Graph Convolutional Network.
Stars: ✭ 641 (-43.02%)
Mutual labels:  time-series, timeseries

GitHub release (latest SemVer) Pypi_Version Python Version Code style: black License

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!

NP-logo-wide_cut

NeuralProphet

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

Documentation

We are currently working on an improved documentation page.

For a visual introduction to NeuralProphet, view the presentation given at the 40th International Symposium on Forecasting.

Discussion and Help

Discuss with our community here on Github

Tutorials

Open All Collab

There are several example notebooks to help you get started.

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, freq="D")
future = m.make_future_dataframe(df, periods=30)
forecast = m.predict(future)

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

Install

You can now install neuralprophet directly with pip:

pip install neuralprophet

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 .

Contribute

Dev Install

Before starting it's a good idea to first create and activate a new virtual environment:

python3 -m venv <path-to-new-env>
source <path-to-new-env>/bin/activate

Now you can install neuralprophet:

git clone <copied link from github>
cd neural_prophet
pip install -e .[dev]
neuralprophet_dev_setup
git config pull.ff only 

Notes:

  • Including the optional -e flag will install neuralprophet in "editable" mode, meaning that instead of copying the files into your virtual environment, a symlink will be created to the files where they are.
  • The neuralprophet_dev_setup command runs the dev-setup script which installs appropriate git hooks for Black (pre-commit) and Unittests (pre-push).
  • setting git to fast-forward only prevents accidental merges when using git pull.

Style

We deploy Black, the uncompromising code formatter, so there is no need to worry about style. Beyond that, where reasonable, for example for docstrings, we follow the Google Python Style Guide

As for Git practices, please follow the steps described at Swiss Cheese for how to git-rebase-squash when working on a forked repo.

Changelogs

Current model features

  • Autocorrelation modelling through AR-Net
  • Piecewise linear trend with optional automatic changepoint detection
  • Fourier term Seasonality at different periods such as yearly, daily, weekly, hourly.
  • Lagged regressors (measured features, e.g temperature sensor)
  • Future regressors (in advance known features, e.g. temperature forecast)
  • Holidays & special events
  • Sparsity of coefficients through regularization
  • Plotting for forecast components, model coefficients as well as final forecasts
  • Automatic selection of training related hyperparameters

Coming up soon

For details, please view the Development Timeline.

The next versions of NeuralProphet are expected to cover a set of new exciting features:

  • Logistic growth for trend component.
  • Uncertainty estimation of individual forecast components as well as the final forecasts.
  • Support for panel data by building global forecasting models.
  • Incorporate time series featurization for improved forecast accuracy.
  • Model bias modelling
  • Unsupervised anomaly detection

0.2.9 (future)

  • confidence interval for forecast (as quantiles via pinball loss)
  • Logistic growth for trend component.
  • better documentation

0.2.8 (upcoming)

  • Robustify automatic batch_size and epochs selection
  • Robustify automatic learning_rate selection based on lr-range-test
  • Improve train optimizer and scheduler
  • soft-start regularization in last third of training
  • Improve reqularization function for all components
  • allow custom optimizer and loss_func
  • support python 3.6.9 for colab
  • Crossvalidation utility
  • Chinese documentation
  • bugfixes and UI improvements

0.2.7 (current)

  • example notebooks: Sub-daily data, Autoregresseion
  • bugfixes: lambda_delay, train_speed

0.2.6

  • Auto-set batch_size and epochs
  • add train_speed setting
  • add set_random_seed util
  • continued removal of AttrDict uses
  • bugfix to index issue in make_future_dataframe

0.2.5

  • documentation pages added
  • 1cycle policy
  • learning rate range test
  • tutorial notebooks: trend, events
  • fixes to plotting, changepoints

Authors

The project efford is led by Oskar Triebe (Stanford University), advised by Nikolay Laptev (Facebook, Inc) and Ram Rajagopal (Stanford University) and has been partially funded by Total S.A. The project has been developed in close collaboration with Hansika Hewamalage, who is advised by Christoph Bergmeir (Monash University).

Contributors

This is the list of NeuralProphet's significant contributors. This does not necessarily list everyone who has contributed code. To see the full list of contributors, see the revision history in source control.

  • Oskar Triebe
  • Hansika Hewamalage
  • Nikolay Laptev
  • Riley Dehaan
  • Gonzague Henri
  • Ram Rajagopal
  • Christoph Bergmeir
  • Italo Lima
  • Caner Komurlu
  • Rodrigo Riveraca

If you are interested in joining the project, please feel free to reach out to me (Oskar) - you can find my email on the AR-Net Paper.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].