aGrUM/pyAgrum

A GRaphical Universal Modeler (https://gitlab.com/agrumery/aGrUM)

aGrUM

aGrUM is a C++ library for graphical models. It is designed for easily building applications using graphical models such as Bayesian networks, influence diagrams, decision trees, GAI networks or Markov decision processes.

aGrUM is written to provide the basic building blocks to perform the following tasks :

designing graphical models,
learning graphical models,
elicitation of graphical models,
inference within graphical models,
planification.

The probabilistic graphical models currently present in the library are the following:

Bayesian networks (first and main target),
Influence Diagrams,
Markov networks,
Credal networks,
O3PRM (Probabilistic Relational Models).

pyAgrum

pyAgrum is a Python wrapper for the C++ aGrUM library (using SWIG interface generator). It provides a high-level interface to the part of aGrUM allowing to create, model, learn, use, calculate with and embed Bayesian Networks and other graphical models. Some specific (python and C++) codes are added in order to simplify and extend the aGrUM API.

Several topics have been added to pyAgrum (as pure python modules using pyAgrum) :

Scikit-learn-compliant probabilistic classifiers based on Bayesian networks,
Probabilistic causality (causal networks, do-calculus),
dynamic Bayesian network,
tools for explainability in Bayesian networks.

See the tutorials as jupyter notebooks for more details.

Installation : here


Licence

aGrUM/pyAgrum is released under two open-source licenses: the GNU Lesser General Public License (LGPL) V3 and the MIT License. This dual-licensing approach reflects our commitment to flexibility, inclusivity, and meeting the diverse needs of our user community (more information). If you wish to integrate the aGrUM library into your product with another licence, please contact us.

Code samples

Tutorials and samples can be viewed as jupyter notebooks. The notebooks can be remotely executed without any installation using binder.

Community