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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.2.0.9.dev202508081753652324-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.2.0.9.dev202508081753652324-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.2.0.9.dev202508081753652324-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.0.9.dev202508081753652324-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 43c46799d1932533f816c5b22c04b6484a302034bb57f23732d326153fe39e0d
MD5 080554c1b076747e6a19478400f30d50
BLAKE2b-256 a1caab54f3b7263b45bac63f4f069dde4ed85bc0d308a372d7c50106af4b0673

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.0.9.dev202508081753652324-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.0.9.dev202508081753652324-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a070a422270dc8ad33da3395f75390a635f7878a9c5d907146182b41216c1a55
MD5 9e8a0711b44458f5bc5425e6c7dfaad5
BLAKE2b-256 238ce191fddffe1d5994bc8b517d6cc8e52c0b3b2f29ac0abbd114639a48fed0

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.0.9.dev202508081753652324-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.0.9.dev202508081753652324-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 60eb3ab293cc74ca672771b076c2afd53e64257ba8be4959714bfc3a80ba918b
MD5 22da7ec990b75fb7d4a42c0e1f634b73
BLAKE2b-256 452f2cf7fa463a48cf178eec418ac4d89934a267d50a63cd8fae1ca9af6d779b

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.0.9.dev202508081753652324-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.0.9.dev202508081753652324-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1f895698ed360e1246b77c50ce18e5c0a83202a101ebb8187507bafa3c34c435
MD5 6fee2c4d7bddb65a4c8edcf4016f037b
BLAKE2b-256 a46b96c638dd389e2b7650b043dfd2b0a40fe76fb6c5a6b5c8291f92857f5e13

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.0.9.dev202508081753652324-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.0.9.dev202508081753652324-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 87f4b92c4c905fe4b38e1fc1e8757eba0da371841d72782251fd522913865923
MD5 ffaaf4db50e8bf69ca03d324f80d2bd2
BLAKE2b-256 fe8d031996545a682c36037b5d341eb9efeca722f2ef5892c31afdc5dbd674d9

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