Skip to main content

Bayesian networks and other Probabilistic Graphical Models.

Project description

pyAgrum

pyAgrum is a scientific C++ and Python library dedicated to Bayesian Networks and other Probabilistic Graphical Models. 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.

Important

Since pyAgrum 2.0.0, the package name follows PEP8 rules and is now pyagrum (lowercase). Please use import pyagrum instead of import pyAgrum in your code.

See the CHANGELOG for more details.

Example

import pyagrum as gum

# Creating BayesNet with 4 variables
bn=gum.BayesNet('WaterSprinkler')
print(bn)

# Adding nodes the long way
c=bn.add(gum.LabelizedVariable('c','cloudy ?',["Yes","No"]))
print(c)

# Adding nodes the short way
s, r, w = [ bn.add(name, 2) for name in "srw" ]
print (s,r,w)
print (bn)

# Addings arcs c -> s, c -> r, s -> w, r -> w
bn.addArc(c,s)
for link in [(c,r),(s,w),(r,w)]:
bn.addArc(*link)
print(bn)

# or, equivalenlty, creating the BN with 4 variables, and the arcs in one line
bn=gum.fastBN("w<-r<-c{Yes|No}->s->w")

# Filling CPTs
bn.cpt("c").fillWith([0.5,0.5])
bn.cpt("s")[0,:]=0.5 # equivalent to [0.5,0.5]
bn.cpt("s")[{"c":1}]=[0.9,0.1]
bn.cpt("w")[0,0,:] = [1, 0] # r=0,s=0
bn.cpt("w")[0,1,:] = [0.1, 0.9] # r=0,s=1
bn.cpt("w")[{"r":1,"s":0}] = [0.1, 0.9] # r=1,s=0
bn.cpt("w")[1,1,:] = [0.01, 0.99] # r=1,s=1
bn.cpt("r")[{"c":0}]=[0.8,0.2]
bn.cpt("r")[{"c":1}]=[0.2,0.8]

# Saving BN as a BIF file
gum.saveBN(bn,"WaterSprinkler.bif")

# Loading BN from a BIF file
bn2=gum.loadBN("WaterSprinkler.bif")

# Inference
ie=gum.LazyPropagation(bn)
ie.makeInference()
print (ie.posterior("w"))

# Adding hard evidence
ie.setEvidence({"s": 1, "c": 0})
ie.makeInference()
print(ie.posterior("w"))

# Adding soft and hard evidence
ie.setEvidence({"s": [0.5, 1], "c": 0})
ie.makeInference()
print(ie.posterior("w"))

LICENSE

Copyright (C) 2005-2024 by Pierre-Henri WUILLEMIN et Christophe GONZALES {prenom.nom}_at_lip6.fr

The aGrUM/pyAgrum library and all its derivatives are distributed under the dual LGPLv3+MIT license, see LICENSE.LGPL and LICENSE.MIT.

You can therefore integrate this library into your software solution but it will remain covered by either the LGPL v.3 license or the MIT license or, as aGrUM itself, by the dual LGPLv3+MIT license at your convenience. If you wish to integrate the aGrUM library into your product without being affected by this license, please contact us (info@agrum.org).

This library depends on different third-party codes. See src/aGrUM/tools/externals for specific COPYING and explicit permission of the authors, if needed.

If you use aGrUM/pyAgrum as a dependency of your own project, you are not contaminated by the GPL license of some of these third-party codes as long as you use only their aGrUM/pyAgrum interfaces and not their native interfaces.

Authors

  • Pierre-Henri Wuillemin

  • Christophe Gonzales

Maintainers

  • Lionel Torti

  • Gaspard Ducamp

Release history Release notifications | RSS feed

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyagrum_nightly-2.3.2.9.dev202601311769423251-cp310-abi3-win_amd64.whl (3.1 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202601311769423251-cp310-abi3-macosx_11_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.3.2.9.dev202601311769423251-cp310-abi3-macosx_10_15_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.10+macOS 10.15+ x86-64

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202601311769423251-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202601311769423251-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 121eeb58887b3d98403934725b7424ecf5fed5d7b0e2c129f71f0a570a4f2167
MD5 49c2cc7e2dfe2cf094d0bc72250c23da
BLAKE2b-256 4370678a4453773fcb26cc32003f9d499cdeb3fa50b7f7ade6da5ebaf1e13710

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202601311769423251-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202601311769423251-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a48f6efd69635b6ef5bb8087c3642965c06a137198ffbb2f7c18e36a8d4a9c13
MD5 3aa066b7019539aed416ae34c64d59e2
BLAKE2b-256 2274b53aed05314de82b44d82a8d3be877ffa51d36d55d5f92aad6a72d1987e6

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202601311769423251-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202601311769423251-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ff8cba559c0f5c10a1dfcd0444b9835dd214c07937ee2b62f73788da40395b2c
MD5 c8b21cde74b43b7c91a92da3d267d70d
BLAKE2b-256 71957ce036e7dc173af7633b1912dd39a9d98b0a79fbaf670338bbd3e7f2ad47

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202601311769423251-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202601311769423251-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f0ccfebea603e7a5843c44cd8f8031f7d618420bc4945e0fe46d89969de29c42
MD5 cfc73f084fb1bd0d67dc2e4d9cb6cdf4
BLAKE2b-256 1090c2e837000493500dfd766dd69fe11e6a0b35d17b0e51eae86e50a11a07c4

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202601311769423251-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202601311769423251-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 d1c8a8c4b235b1e2659da6a6849b3e2cec234eee06b4b3241a79696be97d25cc
MD5 20b978d49d15edd04f6bf54cf0ea1084
BLAKE2b-256 3157a14d482aa3489b26b02c297d246be8029648e4646a0c1d88d9be840a6326

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page