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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.2.0.9.dev202508191753652324-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.2.0.9.dev202508191753652324-cp310-abi3-macosx_10_15_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.10+macOS 10.15+ x86-64

File details

Details for the file pyagrum_nightly-2.2.0.9.dev202508191753652324-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.0.9.dev202508191753652324-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0a3aa19c421b1e15aa6b6b4499ea4db3aff432eb3e6ab432cfa7f500bef0dd14
MD5 8c423dde2f248bf31f7c07915be0aae9
BLAKE2b-256 9380d1d4a1b98403ea063cb2f2508522b90101b1b8b3556e7a74e7e18fb8563d

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.0.9.dev202508191753652324-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.0.9.dev202508191753652324-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b9c31a7408edd561198c60a46810ee894c84e64b269e58e45e3477968d31fa41
MD5 10c03c6e590db079130f6b65c3ce694d
BLAKE2b-256 1b3f859f8bec50d3eefcc7a0f6828e407eb257bf7f229b1061acb5fce44b8fc0

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.0.9.dev202508191753652324-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.0.9.dev202508191753652324-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c860c8960d7d21f2ec82fa37f67e246eb38d21d2c2fb289d5e0e3ba85990f4de
MD5 c31d462589d3f5efa1cb1ed8e3d016ed
BLAKE2b-256 774fa393591437aa6714f48e590ed84fb5ec8e8d619f9b7ffdb223f297764985

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.0.9.dev202508191753652324-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.0.9.dev202508191753652324-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 89338c476187075f7383393ecea1904286f05ddf936b98017595c908d1b2104f
MD5 04a8117ed74f5792888cb3dabb13a462
BLAKE2b-256 256e494be3dafbd980a770b444d224fb2abb3ed59cd8249b30b5cd95affa755c

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.0.9.dev202508191753652324-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.0.9.dev202508191753652324-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b8ccfbe8589f8ce8c3de0b0f1016ff100280e79e4ed07b3c08e557be88e43db7
MD5 1e243e31923085d9d4b690748dd8c6ce
BLAKE2b-256 3765a920e3af72d5b60ad97def54f086d28fddbabb8357fc47fe65e2e2dc2400

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