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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.1.9.dev202512231765915415-cp310-abi3-macosx_11_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.3.1.9.dev202512231765915415-cp310-abi3-macosx_10_15_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.10+macOS 10.15+ x86-64

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512231765915415-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512231765915415-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 cfacb686438b5c67b5b0e3719bb9226520b00e690e60a94fd73617838b4f124c
MD5 7d48857e6915447e2c43b9faea2edc4c
BLAKE2b-256 046d386e84d92990f892875bb0be7388c695b42d4ad60cfad1ef10fd68880d71

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512231765915415-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512231765915415-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 71cf804f32ecc6beb02fcac3e2d1386a4f237353d6cf2af704ecaba5af0aabdd
MD5 8ec36c31a72765841fee4ae5534eed70
BLAKE2b-256 dc10a8d78d874678cd432c241937e662fc1ead731488b1a4d23e69bb9cc2639b

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512231765915415-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512231765915415-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 134bd26d1f89775ee5939353b6b4705fdba7e2cbc1fc0804e2a9558aa1298160
MD5 0a4ddf449da77da6f405c289a47b2150
BLAKE2b-256 3ce1ec6df1bbc0acbdac68bbee15820e860a94c72d84babfa9782292e4de58c8

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512231765915415-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512231765915415-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c1b0eed40ace2c89f63568632549aa738de40ac136e511f4fc58589d34c236ed
MD5 040dcbb08d9d17948f4ce89f58dadb1a
BLAKE2b-256 07b6dc22c9188698f08783b127fe518a2df3734ba594a219f24c2cd8b5a9dfa8

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512231765915415-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512231765915415-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 d5f3da690a5336cc34d9456c41198100d24a57d2b21eb4b0f4359b926926d5e3
MD5 b736681282be46065d6fc041a4439a94
BLAKE2b-256 bfa2cc5c1f9c284cb8024bf8037e6d39b3634d069560e0356d8a6446a3107ae5

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