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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202605231779285115-cp310-abi3-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.3.2.9.dev202605231779285115-cp310-abi3-macosx_10_15_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.10+macOS 10.15+ x86-64

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202605231779285115-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202605231779285115-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 dd6d93efb1ff4d75fcb60853b86122bedcdb873cbf476c185d725e1a506f9b8c
MD5 0c594bc2b33a887f9273927abd5f4639
BLAKE2b-256 66c286b5b8fda272998c214d96368836cc7834ba8d789840c1ebc10282c3ab10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202605231779285115-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 52a1b41502b2ebba1a692bdc5c07d52f06476818cfd309ca6c897590a5f6662f
MD5 c7ab2319d52b4b9af0581a84aa4e2d64
BLAKE2b-256 7f84050a38f0f0c910f179df6688a0e407061e1eecd9d211be5e881ac6e7e222

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202605231779285115-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4af633ff6773a08451dc6177990ca6a11446765898af24f98ffcd73f23a6cc0b
MD5 778dc7564079a32e613c41cf2299b01f
BLAKE2b-256 5be61bfab57743b381182ddd92efcb62b9f887c4b61c0236ad9f1c457747e71c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202605231779285115-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3240a7bed176f6ac3880b9b32ab59e0727d209b7a947fdfe93515c4092c80456
MD5 9c60fed0c3d25cd76cafdddd1afbe93d
BLAKE2b-256 1152c2ec3847701bbfe27ed9d0db52aa6f59297e89479aee9490f0055cd93094

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202605231779285115-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 cbe4f448c7386b0d9cfd494fa7b104372adbce579abbe78a562ccd277e2d320a
MD5 a2a25d206f9689496bcc0de6fa117310
BLAKE2b-256 f45fd97d1d2e0f4becc0707764a0a4b90e74a825406df2b07627b27384602e05

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