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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.1.1.9.dev202505301747485979-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.dev202505301747485979-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.dev202505301747485979-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202505301747485979-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6168bbb304812a19f5eff77e27bf999b02e2243962e96a412ec7945aaf712b96
MD5 dbd07a323861120c7cbdf72ae5e58517
BLAKE2b-256 6fe201b51d81874e7fca9887357149027808aea3d0ab84c31cc25d3e0e0fff05

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202505301747485979-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3c2d86ba14bfd73a9444b2c2ab7dcbfb12fc86dd0291a554d3129d42a9a85202
MD5 c020da65766888bb1e31cc27b919c8e6
BLAKE2b-256 6392c49e447b4e26091d87f8743405071ba3a9c4775cc326de2d9ee308ed49fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202505301747485979-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 40de0b266739310fefb54efa490dfbc998da9a5d678f0e3524b503f2a52d805a
MD5 0b7dfabb6ee16b4565f1538db281db3f
BLAKE2b-256 94569ef1b00a48e70ce9f79a6031164562b1e6a7266b814668b7d0fc0812aa94

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202505301747485979-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 86b3bc4dccfbc46ea5cd2853cea6fc81de97c382e133b646e3184751510730a4
MD5 ef943cde81502b05164c9d8b93fc58cf
BLAKE2b-256 ba497d1980e644c4bb67818112b9a43bae86cdb601cbb6da0667be58c3a66890

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202505301747485979-cp310-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 9abd4a72df9a223a10127b7d8b7d27f143f976c15f6e7e992f3653a9cf50c12a
MD5 b7b636c9e9dc4dec828ae479632978ab
BLAKE2b-256 bcb6b109d289f1142ea8147e71c47c8d17e4e43baf502b6ff6dbfdde6d436f1f

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