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.1.1.9.dev202506091747485979-cp310-abi3-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.1.1.9.dev202506091747485979-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.1.1.9.dev202506091747485979-cp310-abi3-macosx_10_13_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.10+macOS 10.13+ x86-64

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202506091747485979-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202506091747485979-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 1dc1512a9347c55d65fd1d25bf5ed064a629d396dd70fbfcea13a544ec783527
MD5 b1a50c7adb432a2c78c151a56269308b
BLAKE2b-256 15e1002c139a84e31629f7ec1050b6e500721bbd4440f0ffd109d5a0a5ded2f9

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202506091747485979-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202506091747485979-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 931a2dd931771d62b5a3a311ecb8d6f38ecdaaea6ede7a1cf02057c53a558604
MD5 8df35a4c27a1f97b9076b5552161139c
BLAKE2b-256 594bf69ecd0487f0048014a6d131a020ce9bf8b87df7fd735fb93ab316766edc

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202506091747485979-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202506091747485979-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f2e2b4c01f335ffb265c8611bdf404a02276c47a96b8a9185dcef8064b809ba5
MD5 2ed9dbb1eeb9528405f30185270fb4c4
BLAKE2b-256 630f3c26903fcd181eb6b6337f0365acb7a7066e71023cdb7875473946682a7a

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202506091747485979-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202506091747485979-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 efdac9f476c842a5fe1b958315a0c75162e885317b2bf4b7f5d28805988b0b63
MD5 1a1415f6d9c81672da003e8e430e8c16
BLAKE2b-256 2d61e0203d191001723a84589942acd8b395ef295074fb3747fbe7b0562ed4eb

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202506091747485979-cp310-abi3-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202506091747485979-cp310-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 c228bb6a0a84a967c8f9adc37aa685e9c1853f5cc7b2b2b0e9bdd08b42b17713
MD5 cf538354c32387257cfa2b25e7cb1712
BLAKE2b-256 4456b3934ec96c32cd4961d65230628fb74648917fa5231d8af8e63499e332a1

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