Oven logo

Oven

Build Downloads Version Python Version License asv

Join the pgmpy Discord server Read the Docs Examples Tutorial

pgmpy is a Python package for working with Bayesian Networks and related models such as Directed Acyclic Graphs, Dynamic Bayesian Networks, and Structural Equation Models. It combines features from both causal inference and probabilistic inference literatures to allow users to seamlessly work between both. It implements algorithms for structure learning/causal discovery, parameter estimation, probabilistic and causal inference, and simulations.

Examples

  • Creating a Bayesian Network: view | Open In Colab
  • Structure Learning/Causal Discovery: view | Open In Colab
  • Parameter Learning: view | Open In Colab
  • Probabilistic Inference: view | Open In Colab
  • Causal Inference: view | Open In Colab
  • Extending pgmpy: view | Open In Colab

Citing

If you use pgmpy in your scientific work, please consider citing us:

Ankur Ankan, & Abinash Panda ( 2015 ). pgmpy: Probabilistic Graphical Models using Python . In Proceedings of the 14th Python in Science Conference (pp. 6 - 11 ).

Bibtex:

@InProceedings{ Ankan2015,
  author    = { {A}nkur {A}nkan and {A}binash {P}anda },
  title     = { pgmpy: {P}robabilistic {G}raphical {M}odels using {P}ython },
  booktitle = { {P}roceedings of the 14th {P}ython in {S}cience {C}onference },
  pages     = { 6 - 11 },
  year      = { 2015 },
  editor    = { {K}athryn {H}uff and {J}ames {B}ergstra },
  doi       = { 10.25080/Majora-7b98e3ed-001 }
}

Development

Code

The latest codebase is available in the dev branch of the repository.

Building from Source

To install pgmpy from the source code:

$ git clone https://github.com/pgmpy/pgmpy
$ cd pgmpy/
$ pip install -r requirements.txt
$ python setup.py install

To run the tests, you can use pytest:

$ pytest -v pgmpy

If you face any problems during installation let us know, via issues, mail or at our gitter channel.

Contributing

Please feel free to report any issues on GitHub: https://github.com/pgmpy/pgmpy/issues.

Before opening a pull request, please have a look at our contributing guide If you face any problems in pull request, feel free to ask them on the mailing list or gitter.

If you would like to implement any new features, please have a discussion about it before starting to work on it. If you are looking for some ideas for projects, we a list of mentored projects available at: https://github.com/pgmpy/pgmpy/wiki/Mentored-Projects.

Building Documentation

We use sphinx to build the documentation. Please refer: https://github.com/pgmpy/pgmpy/wiki/Maintenance-Guide#building-docs for steps to build docs locally.

License

pgmpy is released under MIT License. You can read about our license at here