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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202607151783661999-cp310-abi3-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.3.2.9.dev202607151783661999-cp310-abi3-macosx_10_15_x86_64.whl (3.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.dev202607151783661999-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607151783661999-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 1a20cb0bb61c87ddf6f3463bc1aa7389b9708110fc2bdcc3057b4f414a057215
MD5 afa9ed6fd7e8d340f30fabc6186c9f0b
BLAKE2b-256 86110b1998913663f849ccd20ecef925c04e1e05fb4cbf889fd9c5d2eb043c32

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607151783661999-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5e8c0d488b8ed09e9f39002ae1b965022ddcc77f0b5499138e1f33c0af6a5ed8
MD5 a41d0abcfeb9698bdac65f47b2447064
BLAKE2b-256 bdadf2065044155e12a5de984a89514bf6e1a80dcf69f4503176b83fad667490

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607151783661999-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d18877ce0dc95202a84e895878dc5bfe2a355a1787319f3b1b4c14f4268f3f14
MD5 d08359b4f3983c684d6ba5f3ae622d13
BLAKE2b-256 af0d9dcae6307f9b88c9ced5e166581ad6bd4e09eab824c9b37c0cf56bdbf0bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607151783661999-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6eced96cfefc8d3b1e88694e59a46ca7b4df5b11f5aeb624f9ea663e985bf392
MD5 f981e3dd0c5a8bc23367a7874788cc10
BLAKE2b-256 decd445c86c8cd725230f6eb112d9541efdac6ae45b88ae3f8c1ef7695596e37

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607151783661999-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 bc7ab751b8f0457c401ade1da704b9d93125a185e134ac4fe2decdea4297056a
MD5 654ff3a786c593dc9f038cb0ae9b2061
BLAKE2b-256 6fca689b02705e91fd95cc5b7c5961f3ba51c64e7d6cdc0f3080b49c80a4e006

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