https://github.com/felixleopoldo/trilearn
Bayesian structure learning and classification in decomposable graphical models.
https://github.com/felixleopoldo/trilearn
bayesian-inference bayesian-statistics classification covariance-selection decomposable-graphical-models decomposable-graphs gaussian-graphical-models log-linear-model machine-learning markov-networks predictive-modeling sequential-monte-carlo
Last synced: 3 months ago
JSON representation
Bayesian structure learning and classification in decomposable graphical models.
- Host: GitHub
- URL: https://github.com/felixleopoldo/trilearn
- Owner: felixleopoldo
- License: apache-2.0
- Created: 2018-02-12T09:51:46.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2024-01-22T09:25:51.000Z (almost 2 years ago)
- Last Synced: 2025-08-30T14:48:23.761Z (4 months ago)
- Topics: bayesian-inference, bayesian-statistics, classification, covariance-selection, decomposable-graphical-models, decomposable-graphs, gaussian-graphical-models, log-linear-model, machine-learning, markov-networks, predictive-modeling, sequential-monte-carlo
- Language: Python
- Homepage: https://trilearn.readthedocs.io
- Size: 1.6 MB
- Stars: 11
- Watchers: 1
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README



# 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).
### Installation
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
```
## Usage
See the Jupyter notebooks for examples of usage.
## Scripts
### 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 -o results_ggm
```
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 -i results_ggm -o results_ggm/plots
```
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 -o results_loglin
```
and
```
$ analyze_graph_tajectories -i results_loglin -o results_loglin/plots
```
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
* [NetworkX](https://networkx.github.io/documentation/stable/index.html)
* [NumPy](https://docs.scipy.org/doc/)
* [Scipy](https://docs.scipy.org/doc/)
* [Pandas](http://pandas.pydata.org/pandas-docs/stable/)
* [Seaborn](https://seaborn.pydata.org/api.html)
## Authors
* **Felix L. Rios** just send me an e-mail in case of any questions, felix.leopoldo.rios at gmail com
## References
* [J. Olsson, T. Pavlenko, and F. L. Rios. Bayesian learning of weakly structural Markov graph laws using sequential Monte Carlo methods. *Electron. J. Statist.*, 13(2):2865–2897, 2019.](https://projecteuclid.org/euclid.ejs/1567065622)
* [J. Olsson, T. Pavlenko, F. L. Rios, Sequential sampling of junction trees for decomposable graphs,
*Statistics and Computing* 32, 80, 2022]( https://doi.org/10.1007/s11222-022-10113-2)
* [T. Pavlenko, F. L. Rios, Graphical posterior predictive classifier: Bayesian model averaging with particle Gibbs, Theor. Probability and Math. Statist. 109: 81-99, 2023](https://www.ams.org/journals/tpms/2023-109-00/S0094-9000-2023-01198-0/)
## License
This project is licensed under the Apache 2.0 License - see the [LICENSE](LICENSE) file for details
## Acknowledgments
* **Jim Holmstrom**