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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602111769423251-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f0f804276cb32f8ba05203678b718899c17ca50840eb81c84c70b98a7be60e85
MD5 0e758e3a2921fe729e121e6fdede390e
BLAKE2b-256 e16e5551fcb09193cfb885fa3e7584c6e74f5e60961f8b4f36552006bb0d7795

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602111769423251-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8e0800d152dabfe9d828368c2c9e7b0bdecc0cb74efd3990f1ccfdea3b45b3d4
MD5 38371ad88afb842c1893f1a324c72b27
BLAKE2b-256 b3c01a6a5708e54447c2eea3aca7dadb93eb636fe2d1d090f240ce81bf4bd4e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602111769423251-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bb18bd6e6eb8ec755a0c62583fc5b5d3e19d10b6058c9aad5bea85a1c074fee1
MD5 6df3889b3e9d1e8c05d4047b3bd600fc
BLAKE2b-256 fc5b114a9e059676a38df801d168f023a3037bda133b0db347edbf9dfe9e9325

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602111769423251-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 086757fced3efe71c9c646d1c64a9db2bb95dcef25b8a9576eed41183fe9bd95
MD5 f66ae6c387f41af9768cca5a88712fce
BLAKE2b-256 d2113b79a1215f79fd56d70f8bee0192e72f372395c07316344c421e9041c901

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602111769423251-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 d8abc3e99801719b7c98f846b8e8bd1c7c63cc713431e3f96d48020c32737cb5
MD5 834e7bf3bc0034a0c0cbb4c0acdfc1a7
BLAKE2b-256 b6df19cf10f20ceff0833810b020e12107afe6932922c1420c1c09669bd96697

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