Skip to content

Pythonic Bayesian Belief Network Package, supporting creation of and exact inference on Bayesian Belief Networks specified as pure python functions.

License

Notifications You must be signed in to change notification settings

JamesTryand/bayesian-belief-networks

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pythonic Bayesian Belief Network Framework

Allows creation of BBNs with pure Python
functions. Currently three different inference
methods are supported with more to come:

- Message Passing and the Junction Tree Algorithm
- The Sum Product Algorithm
- MCMC Sampling for approximate inference


Other Features

- Automated conversion to Junction Trees
- Inference of Graph Structure from Mass Functions
- Automatic conversion to Factor Graphs
- Seemless storage of samples for future use
- Exact inference on cyclic graphs
- Export of graphs to GraphViz (dot language) format

Please see the short tutorial in the docs/tutorial directory
for a short introduction on how to build a BBN.
There are also many examples in the examples directory.


Installation

$ python setup.py install
$ pip install -r requirements.txt

Building The Tutorial

$ pip install sphinx
$ cd docs/tutorial
$ make clean
$ make html

Unit Tests:

In order to run the unit tests you need the pytest framwork.
This can be installed in a virtuanlenv with:

$ pip install pytest

To run the tests in a development environment:

$ PYTHONPATH=. py.test bayesian/test


Todo:

1) Change requirement for PMFs to use .value
2) Rename VariableNode to DiscreteVariableNode
3) Add GaussianVariableNode for continuous variables


Resources
=========

http://www.fil.ion.ucl.ac.uk/spm/course/slides10-vancouver/08_Bayes.pdf
http://www.ee.columbia.edu/~vittorio/Lecture12.pdf
http://www.csse.monash.edu.au/bai/book/BAI_Chapter2.pdf
http://www.comm.utoronto.ca/frank/papers/KFL01.pdf
http://www.snn.ru.nl/~bertk/ (Many real-world examples listed)
http://www.cs.ubc.ca/~murphyk/Bayes/Charniak_91.pdf
http://www.sciencedirect.com/science/article/pii/S0888613X96000692
http://arxiv.org/pdf/1301.7394v1.pdf

Junction Tree Algorithm:
http://www.inf.ed.ac.uk/teaching/courses/pmr/docs/jta_ex.pdf
http://ttic.uchicago.edu/~altun/Teaching/CS359/junc_tree.pdf
http://eniac.cs.qc.cuny.edu/andrew/gcml/lecture10.pdf
http://leo.ugr.es/pgm2012/proceedings/eproceedings/evers_a_framework.pdf

About

Pythonic Bayesian Belief Network Package, supporting creation of and exact inference on Bayesian Belief Networks specified as pure python functions.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published