Supervised forecasting of sequential data in Python.
Intro
Supervised forecasting is the machine learning task of making predictions for sequential data like time series (forecasting) by exploiting independent examples of the same underlying relationship (supervised learning). Learning is flexible enough to incorporate metadata as well as sequential data.
Package features
- Store and safely manipulate multi-series data and its metadata in a custom data container.
- Define your own machine learning prediction strategies to operate on this data. Make use of tuning and pipelining objects to build composite prediction strategies. Use the widely-adopted fit/predict workflow throughout.
- Plug in classical forecasting or supervised learning-based predictors into a framework that adapts them to the supervised forecasting task. Interface with popular machine learning & forecasting frameworks, such as scikit-learn, keras and statsmodels.
- Empirically estimate multiple predictors' generalisation performance using nested resampling schemes, in a statistically sound manner. Compare predictors to baselines.
Getting started
Documentation
- Have a look at the demonstration Jupyter notebook for a tutorial.
- API documentation is hosted on GitHub Pages.
Installation
You can install pysf using the pip package management system. If you have pip installed, simply run
pip install pysf
to install the latest release of pysf.
In addition to the package, you will need the following prerequisites to take advantage of pysf's full functionality.
Prerequisites:
- pandas 0.20 or higher
- keras 2.0 or higher
- scikit-learn
- xarray
- scipy
- numpy
- matplotlib
These are also required, but should be part of your Python distribution:
- abc
- logging
To use keras for deep learning:
- Make sure you install keras and at least one backend engine. pysf has been tested against TensorFlow and Theano as backends.
- If using TensorFlow as a backend, you will typically need to install dask 0.15 or higher.
Contributions
How to cite
Coming soon!
How to contribute
We welcome contributions!
- You can suggest new features or report bugs by creating a new issue. Please check the list of issues first.
- If you have made a change for an open issue, please submit a pull request linking to that issue.
- If you would like to improve the documentation, please go right ahead and submit a pull request.
Contributors
- Ahmed Guecioueur (@ahmedgc) is the original author of this package.
Copyright and license
Code and documentation copyright 2018 Ahmed Guecioueur. Code released under the BSD-3-Clause License.