Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

Bayesian predictive classification and structure learning in decomposable graphical models using particle Gibbs.

Project description

GitHub PyPI dependency status for latest release

Bayesian inference in decomposable graphical models using sequential Monte Carlo methods

This library contains Bayesian inference in decomposable (triangulated) graphical models based on sequential Monte Carlo methods. Currently supported functionalities include:

  • Bayesian structure learning for discrete log-linear and Gaussian data.

  • Estimation of the number of decomopsable graphs with a given number of nodes.

  • Predictive classification using Bayesian model averaging (BMA).

  • Random generation of junction trees (the Christmas tree algorithm).


This package currently requires Python 2.7. If graphviz is not installed, you can install it from brew / aptitude / pacman for example

$ brew install graphviz

On Ubuntu you might need to run

sudo apt-get install python-dev graphviz libgraphviz-dev pkg-config

Then run

$ pip install trilearn

It is also possible to pull trilearn as a docker image by

$ docker pull onceltuca/trilearn

Running the tests

$ make test


See the Jupyter notebooks for examples of usage.


Continuous data

To approximate the underlying decomposable graph posterior given the dataset sample_data/data_ar1-5.csv run

$ pgibbs_ggm_sample -N 50 -M 1000 -f sample_data/data_ar1-5.csv

this will produce a file containing the Markov chain generated by the particle Gibbs algorithm. In order to analyze the chain run

$ analyze_graph_tajectories

this will produce a bunch of files in the current directory to be analyzed.

Discrete data

The data set examples/data/czech_autoworkers.csv contains six binary variables. To generate a particle Gibbs trajectory of decomposable graphs type

$ pgibbs_loglinear_sample -N 50 -M 300 -f sample_data/czech_autoworkers.csv


$ analyze_graph_tajectories

this will produce a number of files in the current directory.

Estimate the number of decomposable graphs

To estimate the number of decomposable graphs with up to 15 nodes run for example

$ count_chordal_graphs -p 15 -N 20000

Built With


  • Felix L. Rios just send me an e-mail in case of any questions, felix.leopoldo.rios at gmail com



This project is licensed under the Apache 2.0 License - see the LICENSE file for details


  • Jim Holmstrom

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for trilearn, version 1.1
Filename, size File type Python version Upload date Hashes
Filename, size trilearn-1.1-py2-none-any.whl (75.7 kB) File type Wheel Python version py2 Upload date Hashes View
Filename, size trilearn-1.1-py3-none-any.whl (75.7 kB) File type Wheel Python version py3 Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page