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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603301770834561-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 ad6a8464020598a59bef5cdaeb2849dc3428c814789a545a8e6756b0ddce075b
MD5 ed42d8ea0512782d79c8d2b44c2bce48
BLAKE2b-256 584bb3a6d35a4c20d83c11b2c508a9a45c4e5bd8e56781a094899bd04055abc8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603301770834561-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 149ae3708a0d63264ff709142a48d9fe01728ce369c19097cb2b1f58e424d0da
MD5 2ab2ea3f7fb8b4e54b6e73c00c2db95e
BLAKE2b-256 400053dc8603ba44dfa3b78ad29b42ec37c04ae281c8e6dd439856693557541c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603301770834561-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 976795ac9aa82b5bd68de9f901b3d3e6d76ea1cb604adf643f1a015521a35ca5
MD5 3b7b6f2826618d645ceb932fcb3712c5
BLAKE2b-256 3644282b6d0ba407bb97e9aee7ce47b519dd80fe728d16bed4e3d3367cf49ef6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603301770834561-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 87043b061a1d335d66ee5f6b0916ba60ae4dab211f5ce584c05ecaa2e80ad618
MD5 0dafdd83cec522e97f5c1d18781add3d
BLAKE2b-256 857330292e43483f98b681872edbf40754eb5374385538745464bf1d97efa780

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603301770834561-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 458b8e55e0d55cfb0a0ac01f585e2845f0eb433f7eb65d4bdd3e6028e115f6c7
MD5 3a1ff353b3cf9ee43cb57c5a7a7f54be
BLAKE2b-256 9631d2785da1e512acf75aee07f2d40916347a226611d6c23369ac9a9434c9bc

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