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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202605281779285115-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 1b5bfe84c17a20bb27c890d267d7a21c9b2b09a82827558b6fa6eab6339a2a31
MD5 300e7810e050360d8aba5c9c6e8413a0
BLAKE2b-256 0bd7e967f323dc641d282a34cd01ab09d2f70fa7dbebf20b391a023f4ece9b1f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202605281779285115-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 695b1af159fe2b617746329d1c317eb62e1429e7559d3791675030a69a9a4278
MD5 b373d03c8a90fd269587f3e35eae2fe7
BLAKE2b-256 0380a8c8b03e5d9919d3fa5e2cb4176f1cde4b9b4efd14155a10619c1feb8305

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202605281779285115-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fe5adc090c56e2d688d924e6294cc7e71656629a4d17f8757ef524f7254506fe
MD5 da2fd052e237f3caa7fe659babcc226f
BLAKE2b-256 02aaed15929924d3c949ae46853ac583bab7135cfff38213370328d63b4a497b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202605281779285115-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 25f10e3968f8e97fbbc19bd801109565fa94e75de9ed2875398afe471a9791f9
MD5 c3f75fad94fda59a2f8047060a8c8991
BLAKE2b-256 5a920afe5cba4d4fba104d2fa5cb636a4f16d7af6c6e42abde75c005f93963e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202605281779285115-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 2b16d811d1d09dba9ac8158723284bfd79958258104942e9ba3cbda3584663c8
MD5 33deab8d6d91853b0b4b4a30fb519509
BLAKE2b-256 645e27fdde347df256e6d71c5d302ae6d2e0a55e904f494c801ad6d2149d0b44

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