Installation
For installing through pip:
pip install veroku
To clone this git repo:
git clone https://github.com/ejlouw/veroku.git
cd veroku/
pip install -r requirements.txt
It is recommended to use a separate conda virtual environment when installing the dependencies, to avoid interfering
with existing packages. To get started with conda environments, see the
installation guide.
For more information on using conda environments see
managing environments guide
Overview
Veroku is an open source library for building and performing inference with probabilistic graphical models (PGMs) in
python. PGMs provide a framework for performing efficient probabilistic inference with very high dimensional
distributions. A typical example of a well-known type of PGM is the Kalman filter that can be used to obtain
probabilistic estimates of a hidden state of a process or system, given noisy measurements. PGMs can in principle be
used for any problem that involves uncertainty and is therefore applicable to many problems.
Veroku currently supports the following probability distributions:
- Categorical (sparse and dense implementations)
- Gaussian
- Gaussian mixture1
- Linear Gaussian2
- Non-linear Gaussian3
1 This class still has some experimental functionality (specifically the Gaussian mixture division methods)
and is, therefore, still in the factors.experimental sub-package.
2 Using the Gaussian class - see the Kalman filter example notebook.
3This implementation is still experimental (see the factors.experimental sub-package).
These distributions can be used as factors to represent a factorised distribution. These factors can be used, together
with the cluster_graph
module to automatically create valid cluster graphs. Inference can be performed in these graphs
using message passing algorithms. Currently only the LBU (Loopy Belief Update) message-passing algorithm is supported.
Example notebooks:
On the Roadmap
The following distributions, models and features are on the roadmap to be added to veroku:
- Conditional Gaussian
- Dirichlet distribution
- Wishart distribution
- Normal-Wishart distribution
- Plate models
- Structure Learning
- Causal Inference
Dependencies
For the python dependencies see the requirements file.
The following additional dependencies are also required for some functionality (these are not installed automatically
with the pip install
):
Graphviz
See https://graphviz.org/download/ for installation instructions.
Contributing
If you would like to contribute to veroku, please see the contributing guide.
License
Veroku is released under a 3-Clause BSD license. You can view the license
here.