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.0.1.dev202504121743172129-cp310-abi3-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.0.1.dev202504121743172129-cp310-abi3-macosx_11_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.0.1.dev202504121743172129-cp310-abi3-macosx_10_13_x86_64.whl (8.1 MB view details)

Uploaded CPython 3.10+macOS 10.13+ x86-64

File details

Details for the file pyagrum_nightly-2.0.1.dev202504121743172129-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.0.1.dev202504121743172129-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b056c7a54a94fa2f59ae80791cc6c40d705d3521db86b7e3cb8427d69873f143
MD5 b0de2e23ff74aec2318a11d64033b980
BLAKE2b-256 449c69c919a0791675d21cfb84ab74453b722ce7e124d0bca3966f7376cf5fa4

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.0.1.dev202504121743172129-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.0.1.dev202504121743172129-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9c46dff42f25b2da378dfe1ff7b7c068daae39ad8fd902f82078bb39ed35046d
MD5 78a15e46db864967c02e49d0764f4e6c
BLAKE2b-256 aab6f61d34851c9f6fb182c23d15c19bac4b1958f2b164d5e47f76a13ead4c3c

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.0.1.dev202504121743172129-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.0.1.dev202504121743172129-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5a76f94dbd7baf686d116818d3fb8f5e5ee0b7e61adf0c9044ff805dd3116fca
MD5 8238f33c77521c056f8c33b71b041db3
BLAKE2b-256 07ce56c48c30b8fbfc37bf771886227f2e2a785c2cec83d65e832ce1729b2b1c

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.0.1.dev202504121743172129-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.0.1.dev202504121743172129-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6f6cf7c9437b82e893bd2d92e3eb31ebfd298284cf8f207e950426b4514efeb3
MD5 1946c0464c9bf86ae848aa8785a14e55
BLAKE2b-256 ccacfb99a56127fafd75208583ec09424e440dc9852914df91bcd055ecb2b8f0

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.0.1.dev202504121743172129-cp310-abi3-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.0.1.dev202504121743172129-cp310-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 380fa9963c040348e5a2ad2dde0ca599efe3c39f5a7cc955af761636f5e4579a
MD5 7464e28ba7fcd9f2bf1a83ba3ff1124d
BLAKE2b-256 e8acaeef91e03e05401682983343f4ab8bf8e078638c9007f18d2b6e5fcda2d4

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