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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.1.1.9.dev202506061747485979-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.dev202506061747485979-cp310-abi3-macosx_10_13_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.10+macOS 10.13+ x86-64

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202506061747485979-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202506061747485979-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 26e680ad4d560ebbf0fee9ac91af28aa9f229aeccb321415d8c22b3fb8abd5c7
MD5 30bd39e3fb82eb61b1d662e7c9b7ca35
BLAKE2b-256 79b79ee26e09b1b6864fe6173f2fdea8818360a968e0eb30e9fe7f3693e3b8e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202506061747485979-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c39a3ef8a431ba22a9dd98372463c44ef4bf60aa36ad54a73375016b95b9ebfd
MD5 8343ad95b2dfd1ad6c8505f2a1dce342
BLAKE2b-256 f824dcb6b65e59c8f1f5ad1640db322893de2d8e4862ae32eef1eac0211fc5e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202506061747485979-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 12d9edf7a65938b7aa573af07dca536af894464479589f5a7b21b754da4b9d8e
MD5 79879d7a8daa457cae392d7b580142eb
BLAKE2b-256 0e1f7f09ec722cb6dde220536c1162612d9974b7f83317a0e95c4084e54f7638

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202506061747485979-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e2369eb603680db78da7383ad01714d9dd0821c4178836065a3eb7ce632253a2
MD5 2f5905eb1ec05a7ab205d721298f07c5
BLAKE2b-256 b4efba900051ad5b5e2a33a6e303a5d06e2fb90d88556085dbbf24d3e143d9d3

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202506061747485979-cp310-abi3-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202506061747485979-cp310-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 3deb8023c23f3ce6a12be5238060cd074504975719be075fa5cebc5060ce19fd
MD5 93c9e1c633c5232dfe5bbbb726dc2dc8
BLAKE2b-256 01413ffce463f74e873856ace2ee0112e7ef5d27d9d62ce7f0cfbf5d30d7a8fb

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