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

pyagrum-2.1.1-cp310-abi3-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyagrum-2.1.1-cp310-abi3-manylinux2014_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.10+

pyagrum-2.1.1-cp310-abi3-manylinux2014_aarch64.whl (5.7 MB view details)

Uploaded CPython 3.10+

pyagrum-2.1.1-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum-2.1.1-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-2.1.1-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: pyagrum-2.1.1-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.10

File hashes

Hashes for pyagrum-2.1.1-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 2133cd4796ddeccfc988deaa4c1909da3109ba59c54de6aaefb6ec6fac028699
MD5 0dbfdb8d538b7b2924bde9f27b0db10f
BLAKE2b-256 6bac59578e02dc30a98c03c1ee779cea5c426b5c1e060bdd8e0370e18ca044c9

See more details on using hashes here.

File details

Details for the file pyagrum-2.1.1-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum-2.1.1-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ae69ff3af950b78e36d9f628e8f024295b8470e4b53ee0ed14f5c4fa53360fbd
MD5 ad573aa23666047b77c8f0e48cf21876
BLAKE2b-256 45db229df230d125412eba585df87f9e52027eb50c43fa431d78c6a772ca3b9e

See more details on using hashes here.

File details

Details for the file pyagrum-2.1.1-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum-2.1.1-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c62c00781c5291562aab75aa4fbed50b48176d54cd8b58e35ee50d97a93f6c7b
MD5 5cbc7a72ece5b2dc8726141d9bf41c07
BLAKE2b-256 09e894b7809e8e0f0bf695ae25ac28976443b2bcb50be91cbcaddbd19287f38b

See more details on using hashes here.

File details

Details for the file pyagrum-2.1.1-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum-2.1.1-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6921344c0a97b7e3ab5d7b16928ddda633cfd364313a0a642b0f6bde22ea6a6b
MD5 4e15b82b1e6f179b4cee01f0e488b4e6
BLAKE2b-256 7a4d1f4f9f6b70060d1d861805d03c13e3a264439391d1872534bf9bd4f254b7

See more details on using hashes here.

File details

Details for the file pyagrum-2.1.1-cp310-abi3-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum-2.1.1-cp310-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 08f791b544157638efbbb7410fa16bef72e520b47687b06244e0b3cc616a5950
MD5 fb2d6358b62fd1e911ef6ebd3cf9235b
BLAKE2b-256 4bda601fe538a1f4030d5b92b9afb7e8dfb595931fbb709e65f2c18cde7492f1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page