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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606041779285115-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 655cbe1f816a013a0c52d1678ed18b5058d0073f1cdb66b1b65a22592745d431
MD5 3d931c3b7135255c9ada18343728e27c
BLAKE2b-256 f897f347e4f48c447979b0853b7da7ac8179b373ae70c4937b2a4246efadaffc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606041779285115-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b76e6a93cbb691b6168aa40f8f296961c6e2d287a6496a1d8e184e7809f04920
MD5 10c1d5abcf0e5337c75f660c00ce4a51
BLAKE2b-256 126c7a7247e2aa1a44ed797abda7ee3517600a94a2435fc91e480752129ecf0d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606041779285115-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 eb054e2134f371735fe5fd1d3ef1c278004cff812bfad266fc9b693c55254344
MD5 f277c91cb4701adb09e8da220eefe262
BLAKE2b-256 ef72c10038c12483af5c2deb48b3c3d7608cdb02ea6a6cdf6bd59b504d88422c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606041779285115-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d4e9fb20b839559386150b23e0000a84c67eb9cda3b27d1350c1a8241f3f9c36
MD5 185d0a3b3654c56e7311d6f96a6953d1
BLAKE2b-256 2132647db2cfd683d13435f228fc7d52e72d5d274d150cdc5e213ce330cc4ed6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606041779285115-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 fd273ba830e2338c8c80b25d20772ed4e7e85b023747fe0744fd640599a1f0bc
MD5 48802a20f2c0d328bf0cb4ccc20133b3
BLAKE2b-256 d9130dca610c98a8ef563dcfa3de73d286528db4811031a88b41cab2ee2263da

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