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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602191769423251-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5fc2d90965db48292cf013fd28c505694b276b149c45fd98f31b91e2c30347dc
MD5 0e1ba0874aa0addf0c95e0bbf854e536
BLAKE2b-256 6e4f4bdb6ad7b6e803358f8fe300ecdf95e95cfa3fa47fbc64da7303b07e1b5c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602191769423251-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6f77f8e2197cbe56dae1e82912e0bc378828d92aa1f5c582f6f695e08e74f234
MD5 54ff397f5287c43f4f1400fa17af0850
BLAKE2b-256 df1aef1021e8d8b48c65aea73c107039910f81b3688a45e6422922d89e354a59

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602191769423251-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4d2734873c95e91ecd105cfcb396c7e85e5399f285c67869fc47c880339691f5
MD5 ddc3c39d1039a0c1a83d1a1653ea1fef
BLAKE2b-256 c7a34d15f0af873cbbd150959f7f7c8f77456d6eee9e6304830d818ff195d259

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602191769423251-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ed2eb5c1768ebfa6d4a7b8275ffb3df613d2d9b7a9c7d3f137264b116dee1ac2
MD5 cf93f7fede4952cfda0f2b2dcfe19ca1
BLAKE2b-256 0d2d1fa98f4b25e283cda7a7ad12adf3da39cc020a6f2c7c93474663961d7c21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602191769423251-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 8c991ec0a054206b8513c6711c70dcfb59ab62654f061b6271eb1c197c87c17e
MD5 7515276a820b285f6ba78fad3b74c1c7
BLAKE2b-256 c98d16cd6e36e95ed9ced945d6a43b85b870aa787ef7db87694267266d4c6e29

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