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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606221781613575-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 37c4ceac03b48afe825f282e45dbca53657e965916a8f9d76ca380483b59decb
MD5 423e550a6104e11a4e243523bee87dc4
BLAKE2b-256 e86e9e609c18f1325d335809002b31bfbc23e3fc1af2a5ed23f5b4edd82da414

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606221781613575-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 33f23777f7d47d4b1b08e47ecc86f153d5f3bb3ab62a814266f07ba7aa511d65
MD5 06d079251f86283a0db03578a3b9223d
BLAKE2b-256 8e44bd822bfe75918e78f0184bbd9e83741e712d15a165af96e4d7f05d9153d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606221781613575-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b07c330109df09b91685a905e920307143bb9652699d5f847f64e21b9f8f5f8f
MD5 163a78749bbab316b10783c11a18de7e
BLAKE2b-256 e41bd0a3933b4f37d739f96fb462084d625a859bfb28ae36b6342f4a4ab5ffb6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606221781613575-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0fd02ec5f01e91faafe6a39ef3e2ec23f7d461653d225fdb139466097cf01f6c
MD5 d4ed3ef19363dde4d6e59f72b67fd92c
BLAKE2b-256 da4b037cbe7afad40c9be72fd608c8e2b4bc447c9848d6d519d53f2a61993b4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606221781613575-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 6a2308ba2af58a542011dccc73ab4b282a5d28a76d3fc29abe213f6e5c93194c
MD5 aa9bcb6fe44837aafe5879e0bae41e50
BLAKE2b-256 92ac3027ef6c918285b942ea2256c1285f9fe45179bd0b9e07c9ec3ff5271830

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