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.1.1.9.dev202507101750843886-cp310-abi3-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.1.1.9.dev202507101750843886-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.1.1.9.dev202507101750843886-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.1.1.9.dev202507101750843886-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507101750843886-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6a68829f1a52d51209e5c9945955152cb5ba17b09acfbc0855dbe12723fd331d
MD5 96020cb96cc50376e7a92fe2170d67ac
BLAKE2b-256 0a75900f061c1d83286fb9de2c2179eb57dba1caa822780a492dcd4b401f1dca

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202507101750843886-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507101750843886-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a98cc6302a86e6e8108da0fa99a733e3a48472d01eb77f08ded1d7f758661ac4
MD5 d4e4fc278b26b5804b898f6b0e7a466b
BLAKE2b-256 ed9a9b15322637ff0acb7cb7bd2db635e96c07311fb7290fb6913ce038de4a6c

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202507101750843886-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507101750843886-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 92cf2db876b97d3dfe9e0c96fc341b9ee0ed0c4b1cbaa9c2c738a5f4cd187c8a
MD5 a670c864633a207ffd4efc7d58d076fa
BLAKE2b-256 2d7081d7f798917f3af83f7f5716033cd022b50c81eb9045ba9a25eef9a5a5fd

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202507101750843886-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507101750843886-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 131adb140c40178b8507ea1a3889a5dad754eee2f6e6e9c05a21e1280eb83dbf
MD5 a48afe7b2798c737bf1c5f8a0131b637
BLAKE2b-256 9bf255874c870928de7a40d536dec271eb96975ab01101824a17bd556e1ba9b5

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202507101750843886-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507101750843886-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 4777af62fd0e0440242009b3dd646441cbe533282fb7daad076fe5fc93212c3e
MD5 4ab0f6b18ed6ba269b1b9902aa573f65
BLAKE2b-256 69a3b3c25073fe5b707ed0f588e81143dc3da526f3457051c715b6fe70664c5e

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