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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.1.1.9.dev202505191747485979-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.1.1.9.dev202505191747485979-cp310-abi3-macosx_10_13_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.10+macOS 10.13+ x86-64

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202505191747485979-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202505191747485979-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 fbdef7e233ce30729a76ec870c9728b3bf366eb1431e0f3a4cebdcdb7f579d9e
MD5 5b37303ce1fcba2dc832f1b0be7ed887
BLAKE2b-256 db46a5436c529fcd0fce26af621dd2a1f96de8e75f0f225c73bd0c3bc98c6d48

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202505191747485979-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202505191747485979-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ee7cdd6dacf0c4795a38f3ac332aee1288cb14b7e92227e82c5ed5e0ffbf28e0
MD5 b3a486ee0f02054cb32da89898249864
BLAKE2b-256 3f3b7559a65415d69a3c6239671c7b8f246cd18b869665922d3e40717d411c41

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202505191747485979-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202505191747485979-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 255bd7c93930666f3f9a0317bbe7c81619cdfea07d744b23fe65d22f335b513d
MD5 f1651634010cb667b485ef3b648eb90b
BLAKE2b-256 0b6dc4ca8bd3281b006cf484810643d61e932c85e7369de8e773b85ffb364ab4

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202505191747485979-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202505191747485979-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 acec3ec75338a68c8b0fc6cb630238d0a4f7cc6a08d86d1e67862de59fdc0e1f
MD5 3852319b3354cf40c5c7758ba2a68ba1
BLAKE2b-256 ea5e0564045d717e6570edc9c4dee6d010b99ae05bc6a5bcf38f9f16c3a7205f

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202505191747485979-cp310-abi3-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202505191747485979-cp310-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 0ba6341a70f616fd8439b15ae93944e0458fd57b90b2300abb18ad4f6235ec13
MD5 a3afeeee162e73348fd9ad309a0d3760
BLAKE2b-256 6bbcf9d5a170def74771547ed24b39725c9f11e479a49cd6d3172f6f6f40c7a1

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