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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202606061779285115-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.dev202606061779285115-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.dev202606061779285115-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606061779285115-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 984ff50bc3034add575cb73080e291fdd604950a6d2f5c003c79942d92f5bd30
MD5 7c9d297714786f4afdb9bd8e45659a46
BLAKE2b-256 6ef2e1337f8481d7bad8c4c1709631ab0c6737542b6670ffe82442d064760a8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606061779285115-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 99173c691725e90d28a43c17a22fdc75f2b5aeb9db0e31eef0e8b6f808a91672
MD5 5550a013cd452438846cd1e6571a9906
BLAKE2b-256 7839a66ed77cc0858fca49f74425701cde8792cf60fef9192e7d94d004b443c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606061779285115-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2b79b74d860a89ee60971bebc9e36a1f717e5333cd73e833c04bfbf62e1cf828
MD5 b6ad4f91a47c1d0eddd91929d6acca03
BLAKE2b-256 e7ef65eb5661a4b8ad2e1dcb4e2f7c2cf9ff2c40ab06deec75f2a22415cca0b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606061779285115-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 52e203836ec612290e2403a22ad8526f2a905538525ea12daaa0f51e91f63a79
MD5 59a3ae73964d3f0067bc9fb2fe0a9927
BLAKE2b-256 f8a4accb03b5191b7cfbbfb8835d2d1a0e13f5f53cc77d9f37371c316ba44847

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606061779285115-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 dce6c30d7922f9c2d6d564bd049a2f7dacaebcd63a38e5919bb08560b262a768
MD5 be092d3d4866378b5b8d4faa959c0196
BLAKE2b-256 3b367e7ed08ca10848307b94cee959ab403d95596e765e0a3d05576e9cf95d4c

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