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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.1.1.9.dev202507031750843886-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.1.1.9.dev202507031750843886-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.1.1.9.dev202507031750843886-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507031750843886-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 62d78615f0e415d892ac2356ca33ffd1a498df7bf4a9edbfd2de8f07c16446ea
MD5 108c63ccd25669580396f769b66be11b
BLAKE2b-256 79b44d92b173485e907b8a9d4387d463dbf23128846b808a02aa4904350e1aee

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202507031750843886-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507031750843886-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 924fe56ac5d169b9b41bfeae546b03b1cfbaf662c8e6ac5ca5357bdff8ceeef6
MD5 de9e2f6dc97125fd8daec89c9958d790
BLAKE2b-256 3e4b4e82722906ffc86af0053325a0a33ded9795b767193a54c0e9d684c2b1d3

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202507031750843886-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507031750843886-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5b8354ad6a21a6a6541400e6a4fb12e7259485c2757e7b045b7d094b0cf761c4
MD5 961b48a5162c8357990a6e68d0ab0a27
BLAKE2b-256 c2e353f5fa11bf0c429662b94d104b640a054ef5d55d25f16cfc5d438560c74b

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202507031750843886-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507031750843886-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b6e6643299e212137e55f43ad00c8f91347ca0bf6c9db9b3a0b7ef02cd6e23f0
MD5 9a12e5a99c5267b233776d6ff34c1a88
BLAKE2b-256 ed76295de11749990f0e8a6c2e08ebb97bfdafd9441105f32180a5c40d626ca7

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202507031750843886-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507031750843886-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 41afcd7581edafc5b8ce1e232d77dc7d50450b7c6f3562508641174414a92910
MD5 c162eff813f6719ebc0f13750408e114
BLAKE2b-256 5defb3affeddea78cf17de61fd2da68def2556f14e3a8a0995859bea21f84512

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