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.0.9.dev202511031761586496-cp310-abi3-win_amd64.whl (3.1 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.0.9.dev202511031761586496-cp310-abi3-macosx_11_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.3.0.9.dev202511031761586496-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.0.9.dev202511031761586496-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202511031761586496-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 7ffb2894875cec960ced1058113f796982c633e892324e2a7d07156bb164496e
MD5 3129b5adb651fd0b3941eaf04a78f866
BLAKE2b-256 bf29bad61c385ddd4c31771c0a02be3a43312d2c5669ddffe9f26a976d79723e

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.0.9.dev202511031761586496-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202511031761586496-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fa1513953ab65a5785e046a251388cf866cab4844b2597d85d6760e3c9de1a20
MD5 4be8f95df82057043b95b751680f3a47
BLAKE2b-256 db5efe9467a6f31e75fc2386cbf4388dc27caf2f8f91581d756dbd0b56b22216

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.0.9.dev202511031761586496-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202511031761586496-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0fc73ac43a963529211cecc0a14bb6f4a039d4b3340fbd7669973635afb99b90
MD5 22c5c72e36b6eff9c1b8ea2d22be728a
BLAKE2b-256 9fb0d247faab4e0b6a9b077eccf173ad9bdf9db162f04fb0b51c683fb4e44931

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.0.9.dev202511031761586496-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202511031761586496-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fe071a0e3f421b9ee5de1aa27a2a772ba8ce25d1e81de328317eab4545dc3af2
MD5 a66da4fd5caf85d129b0ac97dd24ad17
BLAKE2b-256 2f20c1e17d86699eb769e9a491a75dd5cb4a9fe2f97de5397fbdf61cbb905487

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.0.9.dev202511031761586496-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202511031761586496-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 42119ac8aacb61998cd63efd2daeaf71cd7fe5b03e709dd86f87b8a9dfbf7b3b
MD5 9c901a098572abd1d6fa597c9c21dff1
BLAKE2b-256 925c568c2e2ebfc66d8e6a8b1cbab9718add6890f635963518570ab93df7f9fb

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