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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.2.1.9.dev202508291756303741-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.2.1.9.dev202508291756303741-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.2.1.9.dev202508291756303741-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202508291756303741-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 49868a85c0fb9ca65b5a882cf479d4a9aefc60768da700de3f79f1e0ba3316bc
MD5 bada432045817f2a4233df8160548029
BLAKE2b-256 d8ea40f83bc69b31d4f560786a2a82e9a52eb387335754b2c6077b0d2a650f57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202508291756303741-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6ba36f3aab2db4f96887b755a1d191da1b650239e6d2dcdeea17993926277d37
MD5 7c2a2c1642ae2a82c061ee574a81aeb4
BLAKE2b-256 ca914aaa7f01a2547a3c3c4fa7c581040fcc938438f0ad0eb1c04074814b8c68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202508291756303741-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 17cb6313b7c74ccc5eabdcdab3cd43a959ca55c21e0e4dbbada099f403b25c93
MD5 3de5ccbe413d4def10e3af3360d09b66
BLAKE2b-256 8481aa5de88b3ba48283f971e1e6aa1c67ceab8c6f32a8a44e5784c942dfb605

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202508291756303741-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6faa04e4eb91d4c25351b883773762dec8c8ecd1230bbd61c196ed4fb56ef896
MD5 2c1cd3b113689a0990a6f9a233bf1669
BLAKE2b-256 b113db5c59ec602129a4ae60288835540c9f9f2e6df82e30984e01e0e2e8d1e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202508291756303741-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 febaa123e4ac03d84f761222207151605f8a0e5e7d5e73744f309a9e7533fe5f
MD5 36a51cb6963b398738c142679681e4e0
BLAKE2b-256 e9d83f6e00de5615dfff0f08be0b4d67c346293f833b71a322f8a718c26b7066

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