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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.1.1.dev202505161747238814-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.dev202505161747238814-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.dev202505161747238814-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.dev202505161747238814-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 aab5d76ec99d1bfd8578e94240027ca5a515e7a06b4524b27147c1eda5d40bfd
MD5 09ad20560002d4dc765281a5c1eca866
BLAKE2b-256 588fa12df4fde99a4d0268f83ed08e29058ada4659efdd109029f7410de9c374

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.dev202505161747238814-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.dev202505161747238814-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 20f40fe3e6f0477af3e7f71ff35d0ae360d28ae7a9838b6c33f6fe3620e7082b
MD5 a3deaed89d912b8f62db5e21f4968b80
BLAKE2b-256 36619f2cf17f4db3d3454467d9c5c8035f55d88c96b05b274be076440513f2a5

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.dev202505161747238814-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.dev202505161747238814-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c29723a5d886e5ca27bb87ced9464123fa63ff9395a52ffce1d168aa719078ee
MD5 4aa08dc81eb47fcb4a176189f01879ef
BLAKE2b-256 5f2f7f10d5b3431adbd3568118e14d2ee3c058c3aba815a5e86ad57e0ec089dd

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.dev202505161747238814-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.dev202505161747238814-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5cdf46485e088c93b487fe7c1674c909f91911ad6bf49160d15ae0e818fff831
MD5 aebc15d8052da69d07aaa356355fdc39
BLAKE2b-256 c48f8eb0fc5c91089583bf7e798df4a73edbb490de3972a478a6f31121f9c2e1

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.dev202505161747238814-cp310-abi3-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.dev202505161747238814-cp310-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 733fd9d4571631cec1f2c9e1e6dcdb5f63079ba042aebafd3b2f0b3bb8dccba1
MD5 6e17a42d8187d390147ba3dd7c4aeb38
BLAKE2b-256 57cb60a4fc0086543215f2179d9d3a18140c6de21746932c017d7225b810e819

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