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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.2.1.9.dev202509151756303741-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.2.1.9.dev202509151756303741-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.2.1.9.dev202509151756303741-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202509151756303741-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 57467c6f4fc8854841cc84b470d36addd3855b9840d8151a67bee7ffca3af003
MD5 e925212c34761aeffa6c4813a8a087e3
BLAKE2b-256 2f2b97fe0c83fd67a8a2b9e4322a0c6048d9d149e7e6416e20609423e4128369

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202509151756303741-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202509151756303741-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d6f5423a2819c90f49c6776c81c7fdddf70194cd9c04928b17bff902b4ced545
MD5 4fcf5102544e3777c2da458a59856bc6
BLAKE2b-256 f5c75e259bb098704e8f25e3f2dcd1eaa5b7734353d9c54673959d53b79d2c25

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202509151756303741-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202509151756303741-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f8628185b1728f1610663631e2e189be01ead6cbe41c62cd03119eb46302dbbd
MD5 5cd7ff64363cce8a53ba6120501b5da5
BLAKE2b-256 70e3dea4ab641bc5a6c058d2e6a7c5ea1c892a5085a8bd2aed6c34d6dd7fa880

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202509151756303741-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202509151756303741-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bf890ca64f48f1d8729e2c0d4633977005652ee808cf972083413d99134b8117
MD5 4630b12eb45f17612df8ae79b4aaea45
BLAKE2b-256 d20e968f108b1574a66ec11d10c959bc258d47984f1426af727fd1499ecb2376

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202509151756303741-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202509151756303741-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 7223ef8cabcb99d083edab9e5ea46069b2a222d73c005f422473b7e3c7133943
MD5 bd08123117319aeacb6ba1bd92bd4c3e
BLAKE2b-256 b0f724fe5daa90624dbbea46e8d1b91689567cd42d8d9ee7ce183e7cbcbe24e7

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