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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.1.1.9.dev202507131750843886-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.9.dev202507131750843886-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.1.1.9.dev202507131750843886-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507131750843886-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 fbf582e8912ce8158332316c6ac3724b7b5af7ca560dac0ba79fd43b3073e77a
MD5 23a84d3cd2f4c3c454f503e4ddcc562b
BLAKE2b-256 b4b90e6621219a0f3ca58fd8458394f95f6b4c8f55f5181d820270d9527747c2

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202507131750843886-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507131750843886-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 328ec85df2411bee9148d0d21098ab2441da207daf8b0242bc6fbb75cd8d20fe
MD5 daf257267fd3471c67522f767a002fd4
BLAKE2b-256 7b439d250253ed13bf3ff8eae09fc6a838defe20ffeb4adb61052c89ec8bfccf

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202507131750843886-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507131750843886-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 78d75efd193251f4afaaf70ecc6dc20c32dd4bff2d71776612729b2477bcf7bd
MD5 922688cbeeb5a9a26a4f9af1bb088485
BLAKE2b-256 53ddcec195758243a2a7e4af7ee0199cc1b20b760c53247b0f60f61e555eadf2

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202507131750843886-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507131750843886-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f5cc340bc5c2038bc7b9cb1642af5be178001638c6b1010e364c2f7c3d3c2ede
MD5 1501d18bcd18ea710957c27eb0394d6e
BLAKE2b-256 fa772004134d48352de9da5d39ce046225ab1e42dc5e6cdcd73306f205bce43b

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202507131750843886-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507131750843886-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 aa1a3424ebd18afd4dbf24209cef8c32447126061991c12d7fdd49ba69eaf9b1
MD5 ce7dfc16bc66f6cb49c94dfc0a3c450b
BLAKE2b-256 04fb81c2db0cd0c16517250d0248ddc86296f5a7df95ac640f69e587d208e984

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