Skip to main content

Package for causal, scalable forecasting

Project description



divina: scalable and automatable multi-horizon forecasting toolkit

Continuous Integration PyPI Latest Release Package Status License Code style: black Imports: isort

What is it?

divina confronts four main problems for professional forecasters:

  • Multiple-horizon forecasting often involves repeated programming of the same, complex code across train, predict, validation and visualization
  • Many forecasting model implementations do not follow the standard scikit-interface or scale well to large datasets
  • Different forecasting models often benefit from the complex engineering of the same time-sensitive features
  • Because of the above three, deployment and scaling of multi-horizon forecasting ensembles is considerably more complex than a typical machine learning pipeline

Main Features

divina addresses the aforementioned problems by:

  • Providing a single Python object with a simple interface that abstracts away the complexities of multi-horizon train, predict, valiation and visualization
  • Providing a library of interface-standardized model ensemble candidates that can be mixed and matched depending on the forecasting problem
  • Providing consistent, efficient implementations of popular time-series engineered features
  • Built-in integration with Dask for efficient, cloud-based scaling and Prefect for automation, fault-tolerance, queue management and artifact persistence

Roadmap

Current development priorities and improvements slated for next and beta release are:

  • Addition of visualization methods that produce commonly-required charts via Highcharts
  • Additional machine learning model options, such as XGBoost and CNNs
  • Additional boosting model options, such as RNNs, LSTMs, ARIMA, SARIMA, etc.
  • Addition of more realistic test cases, useful error messages and robust documentation
  • Addition of GPU support via CUDA, CUDF and CUML

Where to get it

The source code is currently hosted on GitHub at: https://github.com/secrettoad/divina

Documentation

divina's documentation is available here.

Binary installers for the latest released version are available at the Python Package Index (PyPI)

pip install divina

Dependencies

Testing

For local integration testing, run the following commands in order to create the necessary Prefect and Min.io containers.

docker pull jhurdle/divina-storage
docker pull jhurdle/divina-prefect
docker run -p 9000:9000 jhurdle/divina-storage 
docker run -p 4200:4200 jhurdle/divina-prefect 
pytest divina/divina/tests

License

AGPL

Background

Work on divina started at Coysu Consulting (a technology consulting firm) in 2020 and has been under active development since then.

Getting Help

For usage questions, the best place to go to is StackOverflow.

Discussion and Development

Most development discussions take place on GitHub in this repo.

Contributing to divina

All contributions, bug reports, bug fixes, documentation improvements, enhancements, and ideas are welcome.

If you are simply looking to start working with the divina codebase, navigate to the GitHub "issues" tab and start looking through interesting issues.

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

divina-2023.3.12.2.tar.gz (44.2 MB view details)

Uploaded Source

Built Distribution

divina-2023.3.12.2-py3-none-any.whl (123.6 kB view details)

Uploaded Python 3

File details

Details for the file divina-2023.3.12.2.tar.gz.

File metadata

  • Download URL: divina-2023.3.12.2.tar.gz
  • Upload date:
  • Size: 44.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for divina-2023.3.12.2.tar.gz
Algorithm Hash digest
SHA256 a3e36c2ba450e2231692795901b63f089b32f75aeec73c822158f8a35d8b5d77
MD5 8055457889f4b7000331ce995739270e
BLAKE2b-256 086df195699b8b4f024c946d29c61ac06e7960389064bd2a9f8096eb4d1b520c

See more details on using hashes here.

File details

Details for the file divina-2023.3.12.2-py3-none-any.whl.

File metadata

  • Download URL: divina-2023.3.12.2-py3-none-any.whl
  • Upload date:
  • Size: 123.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for divina-2023.3.12.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7e9829a5cbabd92981d11dda5ad40533da3c27c70939b7f9689c01be23323097
MD5 39fa6c44819d2010c2ea404ca35d453c
BLAKE2b-256 375d59bc6442bcbb79efc81630a5e9261205beabf6c98bc5c9dfc1a26b919415

See more details on using hashes here.

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