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.3.2.9.dev202607041781613575-cp310-abi3-win_amd64.whl (3.4 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202607041781613575-cp310-abi3-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.3.2.9.dev202607041781613575-cp310-abi3-macosx_10_15_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.10+macOS 10.15+ x86-64

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202607041781613575-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607041781613575-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 95c12d84910b44f1550ad8b2ff75b239963ec7cf342ae78e16e04f68926f040d
MD5 8488d14865c30e8c922649bb64c60597
BLAKE2b-256 b86e45aaeccdb9ba0f29e4c4c966ce655ee3112aaf41fbd4b41cff6a3e7af3ba

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202607041781613575-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607041781613575-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c45285d783c1f2aec1425a36cd8573507077d5de161d90730bccac361531a681
MD5 1f5588158c1ea9ffa566cb2e11c72e4c
BLAKE2b-256 ff3ca23b42756408309e886a8217f61d1c8c63ac7108ee964e81e3887d06828e

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202607041781613575-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607041781613575-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 25cba67342a745726100080a072ce707130d3df3f1e17c7ddad80efee52659cc
MD5 350dea60fa8e63b38a5974cd499d80b5
BLAKE2b-256 e77101909d5365895b643dad73f7b44c5c50b1b9ff54576ca64e470f8946d60f

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202607041781613575-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607041781613575-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aef95828ed4392d4d8a0f7d712ae919110dfdb85ff763ba65548921a96ba3b58
MD5 a4083f4b3c8330b3807384c568b4247b
BLAKE2b-256 28488350e366b6e58e4987ee46e6161ffb98c70b6f57beeb5112283eee0283d1

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202607041781613575-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607041781613575-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 0d498b080104e7b7a10f9a20ed0b24c49b2c3f2bc23ec575c2b1cf152d7eae79
MD5 312d0bcfd7af718d560962293e94ec6e
BLAKE2b-256 2d6b3db4130c127cf33eed5790fe4b8ba232634886258f491e4d5e012d05239a

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