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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.1.1.9.dev202505231747485979-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.dev202505231747485979-cp310-abi3-macosx_10_13_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.10+macOS 10.13+ x86-64

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202505231747485979-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202505231747485979-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b59103dd3557d860372112aa0be08e800069de596760be3226625bea9ff1a3cb
MD5 b4277fdfa28b5f11362472eb4890fa29
BLAKE2b-256 b990d9114529384aa384f09fe8a4653fb24fcf4269905aca20c921aa811c6c25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202505231747485979-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 abea32e0a7fa67b454d940315f42a25a7d3f5fc299763259f3ac45650d233d07
MD5 467da88316d95d0f09aa3f1782b63bec
BLAKE2b-256 1b0180952b2b8a3adf3b885029c88415b034bab1e7e6ea6c175b21ac6f8b7ad8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202505231747485979-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9d0e4bedcbd0163016729dc69751c695ef232adfb6b9a09394e3e246f33dc1de
MD5 dfc4530f0e2f75b2a4a1e48aa7547631
BLAKE2b-256 cc2a61d6aa8d215eb50f8da4c98d78f95b81cf13f6bcca2a86ef91ec8c8387cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202505231747485979-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8c894bd896313339b60da0d699ab341d6a814f7a8435824e89a5ce98486b763b
MD5 ce07fe512632495e9cbff00730e79026
BLAKE2b-256 e8cf1e390ee45cc179fd695a2f997adcc7d65ff65265c52fa3d8df6e2f911ae5

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202505231747485979-cp310-abi3-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202505231747485979-cp310-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 cd2fe37a063c93aa20cd933d7d66bc42630e76d075b3644651c4808e9e7f3665
MD5 f21a333e1ba63b8099a1ec0f5fe4fba7
BLAKE2b-256 d2d24f03c2c13dcad621d93436e4e688cd3657ca7e009ebc576fa2bb865cf28e

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