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.2.1.9.dev202510071759295983-cp310-abi3-win_amd64.whl (3.0 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.2.1.9.dev202510071759295983-cp310-abi3-macosx_11_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.2.1.9.dev202510071759295983-cp310-abi3-macosx_10_15_x86_64.whl (4.7 MB view details)

Uploaded CPython 3.10+macOS 10.15+ x86-64

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202510071759295983-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202510071759295983-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 99d80065864dfa1ec89b722d1c45814c14a63fadfaad07e750ed72d5a62006a4
MD5 1df7f0b313b87bb104c686c3fa0b6fd9
BLAKE2b-256 a9f06804a2e9e31e0698074ad02632c0ff449c74872bb0cc4441ce9003b1ea98

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202510071759295983-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202510071759295983-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a5eae205b1438222783d7369960d15360593ca7904bd217cc4b95699a7bae96c
MD5 9b63f2e1d8a354baa135c7acae85a66e
BLAKE2b-256 bf9398a6063ea30de8d14d8c8ebfaf39eb9c11bc397cd351f6a1f9275570689f

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202510071759295983-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202510071759295983-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5de4cd6d68f15a68174eca01e403ae47ad4fe1f72fae40e7a05758702fe61e94
MD5 5cf246a0399ed070029503007b16397b
BLAKE2b-256 6b10ed04b64d7678bcd4c7ee6d2018fa1e099ccc8d36b72911088aded5243f12

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202510071759295983-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202510071759295983-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3cf8d2ab2a1e3000d9e1f07be7763c6658604d44bdaa2cb94c8625b300172077
MD5 d010202adb1ab1f10858f64c7000b262
BLAKE2b-256 eb75a5a3f007c6d5696ddd74da960ad09c61a34cdb0faf237f36ad6bf77c56e1

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202510071759295983-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202510071759295983-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b7054afa9fda512394fd05a47316166f42e4e238c7e23cda3680f34bde4906d1
MD5 0fb40152c74ef0c287e65ee1bc699d74
BLAKE2b-256 a547b4adab98a3c2ba539ad40c9c4d8b6a1d4223dfd7786d49c09a2914f76d79

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