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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.1.9.dev202601091765915415-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.dev202601091765915415-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.dev202601091765915415-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202601091765915415-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 fc7ddc51a0486482eb3be0700d2ad9bdebb9b43f10118600be5a9973d5bac816
MD5 312ff66e3130bf1ad93cedb9e25dd3fe
BLAKE2b-256 1361384e91fbe068778b282a1bc6f53dfb662b98664646b471754c988143e64a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202601091765915415-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fafde6637a45354437348c0674dce3ecbcfa483d564d6661a59f79baaccef492
MD5 1ebf9e678faa1943349ebaab50ae2af7
BLAKE2b-256 94be0760bb9e39d7355cabd6acf811c84b26f94cc3dd2999bc96ac2127a06745

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202601091765915415-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4d5d32949294281116357b6a1c98962c9c3a1021c07ee8a601f6eff7c8f3d613
MD5 eb996effefec111e5bd7560783b3211f
BLAKE2b-256 833e8158d5032870af90617ae0c991fa7df1ccf1511de0c59f3549f4bf8a3a50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202601091765915415-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 84d32998544ddc171b99ef78bce5284448b7eacc9be5924dae012be2db5d619e
MD5 b6df8558be8c0cad0da57d2d571fb0d1
BLAKE2b-256 abfb20893fd9cd69fdf720205746d01fc142012d6dde3726134fea20bd2f6ce8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202601091765915415-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 5dd8ac42f2b9807b0cab785c5dca2b8b08970de53b162324f44b1d4eff61fb8a
MD5 3d00b3a67c1767999e1b97f46d3d75e1
BLAKE2b-256 2e39bd5f2e453fde541c77a198fdf387449d959a711900bdc35e3a78bf5c711a

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