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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.2.0.9.dev202507261753365430-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.2.0.9.dev202507261753365430-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.0.9.dev202507261753365430-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.0.9.dev202507261753365430-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0b9e43cc7b484da551b44cd172f5179d99def43b53eb82783446ddf077207595
MD5 938d9687356d754e06834f2db9ecb95f
BLAKE2b-256 c3a108c0507f648d76b4d69b202855e9bf0007eb730a2af7bdcaf3bf3ef26d7c

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.0.9.dev202507261753365430-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.0.9.dev202507261753365430-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d1899dd2b4f1d50b4b85e55c7f9a3c3dc6e96caf16b2b09e631aca1f63d32753
MD5 55d403a55497b568f158617224d9064b
BLAKE2b-256 82823fb9ddbc6e9c6f733109c9d207f6f68ffa38cd1772bf1504610c1dbcaa7a

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.0.9.dev202507261753365430-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.0.9.dev202507261753365430-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 715345e2b4cbd115b9dbe8cae344410dd377ee1ae397879c0fcc464398258020
MD5 980b7c861de2d806b04b3a0613a9678d
BLAKE2b-256 f0e4eb375e7e4bab96d5968d7d5532251467bcbaae054605329cedf5352af415

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.0.9.dev202507261753365430-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.0.9.dev202507261753365430-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7dd36f23e32bbe545502ce78f1fd1241ce4ff2a8a701a1099c23ebfce5e3435d
MD5 f3f5756750aa6a1b474e98b617b7c7e4
BLAKE2b-256 b56011b1fe946069f2a515236e03f37cb4c02f83944e9ff696439ccac70ad2d7

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.0.9.dev202507261753365430-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.0.9.dev202507261753365430-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 074405f7f239b63af15975ecfa07637d81ef0f9b7349675fc1d08db2214cdc91
MD5 e53db26d25600ac0fbf2a22486c51107
BLAKE2b-256 ee70d2cbbe0413b630086a71ed5db6d96c2d528258d29d78f0b0abac8c32e59d

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