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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.0.9.dev202512051764412981-cp310-abi3-macosx_11_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.3.0.9.dev202512051764412981-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.0.9.dev202512051764412981-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202512051764412981-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 fabbac8fe4664d0fdad1573b498f73e27cc42c818c72b05e1bd25a3f8d71688f
MD5 e4733a1a2d427f1b553b106cb1cd69a9
BLAKE2b-256 f40554d60238686dfaaa4e8df99bb703842ee671f877bd5233c08011d856e55a

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.0.9.dev202512051764412981-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202512051764412981-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5f4679f24766a6b89b4d2f6bcd5552214e2ee0163628ccffcf8b3746e6cf3b96
MD5 be15eb73b9409034b84f7268951834f5
BLAKE2b-256 ea6dd35313119fd1fd109152204ac1a899081d099fa8b30de962e62d5bd791dd

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.0.9.dev202512051764412981-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202512051764412981-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 74bc2f0cf43ab479292d00ae723665078d43149f00fc0d9481589649afa47ae4
MD5 a5ddb6f72c249c6339aba96c5796a5f7
BLAKE2b-256 466e82aef9b083d4533cdcee3f3329395deaf3b58fda4fa114506a6cae4738a2

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.0.9.dev202512051764412981-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202512051764412981-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5377eb9a9c887bd1a1ad98e160b8a1a4b4740ee887e90822a2870d1de9536b54
MD5 8c61abcf60563f3999ebec2d9be5ef4c
BLAKE2b-256 5a4643694626b12c4d39c85d22496d044421f178389a61b0584432fe1a3c2b15

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.0.9.dev202512051764412981-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202512051764412981-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 39b9f45260e7036312c293456a5afb20cd90fa7e6194242dbde3b8af1fa70ff2
MD5 699936f987c350216c79c9d46485ad35
BLAKE2b-256 d27f54ec44a1aa6484a702683b6decdbf5288dd977182f8144fb034cc3a0aec2

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