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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202606201781613575-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.dev202606201781613575-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.dev202606201781613575-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606201781613575-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8ec1218a482f930a108e69baa8ffe155cb0de519491b0b154c72e002af1cf72d
MD5 16b795ba21a9db82f5ec51b1f16c2a1d
BLAKE2b-256 38f3b6ddc307f203c09de8dd987a3a24834ab8c53d5b35039509ca09c4a1a5ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606201781613575-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c7548a92ca60b2c895b12df92215110545b6b4a666320f0187e12625d605422a
MD5 aee2bfb9f9ca14088007cb093198439f
BLAKE2b-256 3a86a830808a83253730dd2d3f25d9306fabffe54f9644d214cbe1b631a16f46

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606201781613575-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ca40014df96f45b808b26ac99e6e1bba4a32349edd8e1629ab1ace85e41f1153
MD5 2d6d0779e9b8af6f7f40a7cac5e1d2d7
BLAKE2b-256 7b0599a0c7ad1b5af7e0c2dbb59be2330343d8bc8d2569f65dc387bf0dc90b7e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606201781613575-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ca853248f336b690fa046f33cef1d1787354eb5c6d50b5c74013aa29b4eb2657
MD5 9ec7d352d21b3c26e8abda85da497a1f
BLAKE2b-256 87c7bbddbf57141a39bbd3357d024a9d4a780013fb14b127593df10a9a71ca34

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606201781613575-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 09c5eb310b2980f56c20df048ce77c7eee058436b1f203efcd5ae2ecc7dab21b
MD5 4e61c1f19346d73162160135a7a3e549
BLAKE2b-256 ea21419e92400e9faeda304bc356a00230d149c776e1e96db32cdb580215a9da

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