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

Uploaded CPython 3.10+Windows x86-64

pyagrum-3.0.0-cp310-abi3-manylinux2014_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.10+

pyagrum-3.0.0-cp310-abi3-manylinux2014_aarch64.whl (4.6 MB view details)

Uploaded CPython 3.10+

pyagrum-3.0.0-cp310-abi3-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum-3.0.0-cp310-abi3-macosx_10_15_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.10+macOS 10.15+ x86-64

File details

Details for the file pyagrum-3.0.0-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: pyagrum-3.0.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 3.5 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-3.0.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 1fb486a839cb14539867707b4fb392a39ab3cfa41d405664ccaaf640a5195755
MD5 e32c3de8da68b77bd50610e6e014b6ce
BLAKE2b-256 2831f734052ca537a65357713ff449b05c05fe44c67261a1128294f0f5c3045c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum-3.0.0-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 faefe7be773c105c892dcc2502ef9039f79616771cc4538cddd1bf62363834da
MD5 4c20912fa785e20402c23b67c2dc02e1
BLAKE2b-256 df48ecb3b58988ad1461e0a33698b437ff9733541d4bfccaec46b7ce8ff14539

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum-3.0.0-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1975a03d8def25dffecb18f4187032b9842ea2c3e3a096d44768a03d7c48cbcc
MD5 c64874a43395857917f2e6bc66fc9c62
BLAKE2b-256 ef0514df30f86603674e625f0fc50b72515136f2ec3fb82899ed3b87c52f5cce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum-3.0.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9d1e5013845983d3b9c6bf38454fdaa79dca68144791358ffb4ef258270d94dc
MD5 2813998c115b482ce90f086f4c504345
BLAKE2b-256 b1c49ab75df87573b5b3d99b028b6b82c88530109a5d8ad57554a25167285f7a

See more details on using hashes here.

File details

Details for the file pyagrum-3.0.0-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum-3.0.0-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 6c9275e95a4135e0ddd2f628d8c39374e3f116216194ada7badb863bc2f5ea33
MD5 73a07868eedaeed43a0ef0e1e298ed7c
BLAKE2b-256 a3bd2ad4c9e8eaa760697cadac0c20baee1cb0c1ad5096fa4e591edebe51f6e8

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