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.0.1.dev202504191743172129-cp310-abi3-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.0.1.dev202504191743172129-cp310-abi3-macosx_11_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.0.1.dev202504191743172129-cp310-abi3-macosx_10_13_x86_64.whl (8.1 MB view details)

Uploaded CPython 3.10+macOS 10.13+ x86-64

File details

Details for the file pyagrum_nightly-2.0.1.dev202504191743172129-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.0.1.dev202504191743172129-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 689fd2c16976cf2d4cefeb03d311db634e414fc30807b10aa6f27678905141f5
MD5 846d057ebc6e5006da294a00061d6abb
BLAKE2b-256 67a255cdc548206e8f2c7f9ae47825a1df268c8f3f6343726627ed794ee99b63

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.0.1.dev202504191743172129-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.0.1.dev202504191743172129-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bdc95d424309ba9dae98b65b991d021c07f28f34c9d8938f9c7bac5e82602b3d
MD5 91eaf3b47cd1e807a1f4441f05b1b300
BLAKE2b-256 ebb11b6260f2a5966c47fdeb8dcb3cadb482cbbe9950cafd60fbfec6f12b7598

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.0.1.dev202504191743172129-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.0.1.dev202504191743172129-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dd47210c70da195fb33fd0db622ed1009ddfbc9ab1f644b4f5faf6dd40baf76d
MD5 2d6c57d9b8d3c17a28a04a3a0235c055
BLAKE2b-256 b3b68be67b27dd291b786b66af86bb04733496abb0e29fa9a6ae7662aaf53e59

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.0.1.dev202504191743172129-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.0.1.dev202504191743172129-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 882bbd0b60f912448b3324c2aa3a5d9e55e1b1bd69d6ef711c3aad2c650aee62
MD5 037cd06eb28d7025e5f98d032ea1c81d
BLAKE2b-256 693004328a96afda6e32520e13d729e325cc0b7a2f61fd94299851380eb64e34

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.0.1.dev202504191743172129-cp310-abi3-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.0.1.dev202504191743172129-cp310-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ad9780e5ecb3035c967ecd9fac4e3be89634620e8cd1d108c04798c9e13aac50
MD5 a3f47b80a531ec9c6c04bfe908352b05
BLAKE2b-256 040f4f1786cc960d4cb0cd3eb0cd890cb1bcd5e0672fb19ceccef017c222f530

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