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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202604291770834561-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.3.2.9.dev202604291770834561-cp310-abi3-macosx_10_15_x86_64.whl (4.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.dev202604291770834561-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604291770834561-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6661fc692e2843dd1a59d9754d7908dadb65838ac601b4b5c92d519e9c70a895
MD5 a0fb480e7dfcdf76f0c5193d52cbfe73
BLAKE2b-256 cebc086ab9283cc535057f6aea70b3f132bca5eb9b0ffdf829ff561c9889c7cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604291770834561-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 10106d9415c63e31e05bc2da58a9c8b2f404a0f967bc8f51059722569137f398
MD5 c3b2acf9b87097d26686b4d56f7e3f5a
BLAKE2b-256 8d99ff961e59dae8e893627c9ff5efb778c6150b8cd05d60711403364769100e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604291770834561-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e333fdcb822ffd039aa3068095edbe161045d9e1af77cc9e64cb231586339084
MD5 d858cadad4c4b04043de77da64e1d4d6
BLAKE2b-256 84c5262593c7dc51a567c8778dffcd52d6586d5fcf37090f1823ffbec1003d28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604291770834561-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 40b0e9ad86eed9b25945cc8e170227c5cc2f5ca6829d5aebca1d286fd5f7877f
MD5 e7eb13057c2c3bca9cf268678927b7c1
BLAKE2b-256 1f50de5739a5c2eb23fe3bc8ed2de6f30106a8aa6644a8cd7e327adec15086b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604291770834561-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 fecaeadf2cd3c4c490b0eba3abeb6b7dbb867b22281243a5cc9e8d303c83a718
MD5 18ee820ca6455374152e5ce8af6083de
BLAKE2b-256 2516e0443912d20dfd067e5194b7e742a63fda72a930d9f6857c29b28bf1686a

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