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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202602071769423251-cp310-abi3-macosx_11_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602071769423251-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 bb46b8b5876cc1cedb5f5518a2cbe6086f37a7613ebb25bd01530734eefdb8a5
MD5 11f9e59f6393355921e3fe4e98a9951a
BLAKE2b-256 5dccbd1971639106b440cb011e6f74c2fa8818e22a2c915ba1debf0017b677da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602071769423251-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f0aa2313830c88e129b1d083ab2bc2ae672de61d23e916c5ad0f62f12e552f27
MD5 bc3e72db1d511cab7b757f5551ca35d7
BLAKE2b-256 3273b1f0ac4a64b40de4c6aca7c43793f012db8973320ac2303c84588842c24d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602071769423251-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cbbb1bfda15440e53d489867fa9beb7c25a8d6ba361e4c8dcccb802bcee29b87
MD5 76ddd35f904ea2d2f6a11c49abc2c186
BLAKE2b-256 0889c31c71396b001cc45112f39251ba16161a63decb5a6c21b687f8a9fdfe04

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602071769423251-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0fef06198c829dafc0afa9a4fe602c1a4634162ba180db3885984a224c988d23
MD5 d1b7dbf6da5a401efee74dcc1ff71be9
BLAKE2b-256 12d7ada79a83e597046172facc374856e64866ef8a0f5543ee5de9171f001361

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602071769423251-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 37644ddbe92cbc19e88b68c09c5e0079751438b0116b98545560bf729d70120d
MD5 e8705b6d7ff948edc8c965d43022a5f5
BLAKE2b-256 e6eb31c75a353a098ba318746807b34de9fb1b019fb9b7ea06fed5108f564fd8

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