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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202603041770834561-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.dev202603041770834561-cp310-abi3-macosx_10_15_x86_64.whl (4.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.dev202603041770834561-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603041770834561-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 cfc063f135d9e286b749bf72295fc23ae1734cc33f6743dbe42a6fa2f1ae5e07
MD5 480258bb994e87bb0cd41346c198e54f
BLAKE2b-256 68dc02670d59cba8c7f4c607e8140e42b4a21a13ba73793c04b075d9cd1f8292

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603041770834561-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3e8769057ed13b9eb354d89faec6e02337aec0bd33aeff369d7f2da260da108f
MD5 428e6fef6ed43a957a4ee2f28871f358
BLAKE2b-256 3fe92dfed1f964bcf4ae002ad3b98f17afcf8a6e6c9c3f6c3fffafdbb57eec88

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603041770834561-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a240bc65db70f9464704a813d30c605530eeb46a8ff916ca7ccee99d1a1a0e3a
MD5 6f8718b3a5a2b50dc96a9a57d99fd70a
BLAKE2b-256 c1fbc2fb94a7b4835dae702b2053c6306ab606f51ee93053e9d66d8634499dcb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603041770834561-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5a38223f229b89f3bfcd756f6c806da2d54ed5a533b1f85c5430cf5bd88f80aa
MD5 539f774b6bb79d15096c114c5e0cb8ab
BLAKE2b-256 49679d1e296980c33d436c714f912a7a5ef33c907b6d874c2692059eb7ef8f0a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603041770834561-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 4fb6f6619d0c10930242483b46812bf9f2be574d56274e16c06d1f29e13675a0
MD5 0e73706b9b6f1926941323bf27693726
BLAKE2b-256 c0242f9579a85cfcb8bc73549a1ff90adda6c0dd48459bdea9bc7b8f6643b03e

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