A GRaphical Universal Modeler (https://gitlab.com/agrumery/aGrUM)
aGrUM is a C++ library for graphical models.
pyAgrum is a Python wrapper for the C++ aGrUM library.
aGrUM is a C++ (17) library and contains :
- dedicated fundamental data structures,
- light directed and undirected graphs,
- efficient and extensible multidimensional matrix,
- classical state-of-the-art algorithms Bayesian Networks but also original ones,
- no GUI,
- tools for researcher (random generation of objets, introspection, etc.),
- tools for integraters (listener, multiple format for bayes nets file, etc.).
aGrUM is (L)GPL, cross-platform (linux, windows, mac) and on gitlab (https://gitlab.com/agrumery/aGrUM)
List of functionalities
Variable Elimination, Shafer-Shenoy Inference, Lazy Propagation|
Marginal targets , joint targets
Optimized Relevance Reasoning
Gibbs Sampling, Weighted Sampling, Importance Sampling|
Loopy Belief Propagation
Gibbs, Weighted, Importance LoopySampling
Pure max-Likelihood, Laplace, Dirichlet|
Graphical constraints (forced arcs, forbidden arcs, initial structures, partial order)|
score-based learning : Greedy Hill-Climbing, local search with tabu-list, K2 information-based learning : 3off2, miic (with latent confounder variable discovery)
Exact and approximated distance/divergence between BNs (KL, Bhattacharya, Hellinger)|
Mutual information, entropy
Simulation (generation of csv files)
Markov Blanket, essential graph
|Probabilistic Relational Model||Input/output||O3PRM language parser|
|Exact inference||Structured Variable Elimination (SVE)|
|Credal Networks||Approximated inference||GL2U, MC Sampling|
|Multi-Valued Decision Diagram||SPUnDD|
Legend: original features in aGrUM.