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.2.1.9.dev202510081759295983-cp310-abi3-win_amd64.whl (3.0 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.2.1.9.dev202510081759295983-cp310-abi3-macosx_11_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.2.1.9.dev202510081759295983-cp310-abi3-macosx_10_15_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.10+macOS 10.15+ x86-64

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202510081759295983-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202510081759295983-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 63c73ae9e99b35b6fdc818eb5d6076fdc073230d366e0ebc59f68e00964273e2
MD5 e054995879b24c2d117f6c5ac9523ab1
BLAKE2b-256 d7a0d61488945b69be7322ac1a718cc74e93f329bcf3dca769118fda33ba4535

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202510081759295983-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202510081759295983-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1bf16f5ed7ad27d36f40e69b1f38eca25ebe85930f262ef476c493b5e8a133fe
MD5 3fd9bb690991e4e34238da7e3e7e963f
BLAKE2b-256 8999894d951ee5f0d1fb9a70ba9034a9c74eb2dbc7494f2db7a3ecee6fdd5d35

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202510081759295983-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202510081759295983-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 104f66061bab6f203128ee7b3572d6b59b11ea6184273dd381f0eac040c44af7
MD5 5250e806e062a563d5c30c38660d4f73
BLAKE2b-256 5ef2baa0aa123dab0dc6c2e371fda7da015f7d91d02380682b869b70c4b1ab94

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202510081759295983-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202510081759295983-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 15add2b0902dd6b3222a4ac733b934280fe7eeca91e59b95bfc9e4428b7412ac
MD5 53794d19da6553cd1f86aae87e79ae2a
BLAKE2b-256 a2ebb7f6c051c6758784342183fdf602cde5e742ab52dc6428daaee285174d9b

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202510081759295983-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202510081759295983-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 ff92588acc278513f76850aed5ba0653e9294802b44a24859ba4d41b130b5765
MD5 bbec8b3e7765b9ac79994051ebbc424a
BLAKE2b-256 b64fe4b14e49c1f654629f97be86763f29fdf7d08f9906694607f5da46c61027

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