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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603221770834561-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8649164e3c81f13dc99d9c7f430cbffabf3ab104cfb6a766d65718d63adfa13f
MD5 8dd983c9f298cf01f42cfa3cf58509c8
BLAKE2b-256 41a04606882c9a4fc56afb9b243125fb055b5e6826817e68be0037307d881742

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603221770834561-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1ca22c0e4636438762c23262792e5ba8b4915445771c76c460ed55acf91b7a11
MD5 36de92b2e969577ea50492c7d73f4e40
BLAKE2b-256 3f1f6f4516d8963643df0739459a472d6bcbc54e1b0d92499962ad8a5b43313c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603221770834561-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9ebcd422501fc4f8f8852869c9480bb273b3f6a50a30d13b5d5d3483ab1bb958
MD5 8de90ab1840dfceb099f3ec1f0f6525e
BLAKE2b-256 f19bdd6a96c86d14ac4708c4df37ee9eae9b9ec8f4fa8e8e4ca3909f6f3bbd09

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603221770834561-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d280f10d618a9eb27813ea32dccdcb74232f0a0fcca00c5bb07978cdc319c6c9
MD5 ae2f4e257fde67ec5bd90fd31f518b02
BLAKE2b-256 1d3c5afde6d16998f61e859066e6ef30bb900c9b751cf12ffd9c2d375c390f1d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603221770834561-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 a80b09cb08f6e640d01b590ab647a5916eead56f02536bd874c1e5195abf3e9d
MD5 2ee51e882bc5d6de73829f0a80527f59
BLAKE2b-256 6224842c645b9d3f32e6c03d87413cd9aa70a2a83cd33deb4123185736a288a9

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