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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603121770834561-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 806c741b097e703c4e98646a35fb964a6b79f2e2ca8e5de19e7bc6b8e500615d
MD5 d8de87b60f4826e8828e9e8e933f84b6
BLAKE2b-256 534a8c853ae6357c2d252f4096a24c7b5dd084834f59feefb4fa73595f6a6590

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603121770834561-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0db47dd2a88e88ce0de2bb05442007108ed84366eed4ae44ea5f4faeec4de649
MD5 4ae5b33a36cf67d8391fdd45280ea37d
BLAKE2b-256 8972022f5ea898076d263aed9b60af9340bc2a9dc41c7ff1378435c54547d4fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603121770834561-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1c0271539131bbd9f188a07efd9a7976944a272fe4b069db48ebcb48b250a4a3
MD5 c8ad8ef27b803b8779d269ef20e62be2
BLAKE2b-256 c90b7f43f8e71729791717b98027b35830b11a14143b23cefc7d4e61ec763489

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603121770834561-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bb87db9e56a0d3a3fd8aeb4f41beb1ef073563851d6f935e4096f2f12c62758a
MD5 013c00c261a3c189f5547bd944acc181
BLAKE2b-256 a90aad955ba3a776ed1ee74d76c143186ef5db37fa7f3b9fdc95c4e13f0b349b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603121770834561-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b827cdbb72d6452e7ad48493eb27d0b2bc4b92c585edf4008c1903ed5ab38bcd
MD5 6c861471c99a7643d74769315b896435
BLAKE2b-256 a62f7943a67559466d37a962e0fa792aad60c89597dce3b5513ff29e23640800

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