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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202601291769423251-cp310-abi3-macosx_11_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202601291769423251-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4d1819681adf3fde58e27060089f0575d0dd4e83cbd12314cb8f57cc17e7281e
MD5 b956e08810bb14baea921c552cc5aa3b
BLAKE2b-256 edf9aa8e0f44235a215e54c913a2844574ea47938a75e8b9cdb70fa3bf7c31e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202601291769423251-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f3fd24e302f2a1109ab9b7f448bc43e1ede0bedab28b4d8338652f2c46fb5ec8
MD5 c56e6b06e8811fa5135046518f94e647
BLAKE2b-256 8a129132fc1b13744df4f7ab450517a64d54a021881581ffa5d1b9476fb510d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202601291769423251-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8699a1a1d78a3af3c3d27d45f37c3eefc96b7f274ca66a1e270b5ec040524376
MD5 400cfdc3dcb165e35d7780442834905a
BLAKE2b-256 979784e48d948e1f5443a2d0198196a2f06bbd1db3781c21dfc7e3c81218db8c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202601291769423251-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c7fafa0f8e3e746154c3caff38cccb78a099df7a4db16ab92eecdff7c1ce35e9
MD5 c2840136d59011d195d87705b888edc0
BLAKE2b-256 c807f6fd768a14f5fe8200a5f51c49fe88e6644f675740218e49bfbda732341c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202601291769423251-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 fa1e621d7256e833e590d2534713e8466a43a5148508ac6040d7c2a626dba899
MD5 4e4cc5be7ef03a279a9ad0b7c4b09278
BLAKE2b-256 5779ff9fae281116d21f6bbbf042157b0136b710ce8fd18778e6898d69f8847d

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