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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202604301770834561-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604301770834561-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 ee5ea7403c799e239b7d0021200926645651dd9a1c8cdf3302936e9ba050c778
MD5 76c2fa2a7f9b787d794321c41f49137f
BLAKE2b-256 ff2c7b9a10252c887339203b32bbfe45a2b5505e4c3f2db1ce9572b43a32f8f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604301770834561-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e24adf61cbce4b9c88b607b67ed37323ae439a443ba2ad0eb99d0f497b4b400e
MD5 095bfbafcf19d0307ea889a4be0af6a6
BLAKE2b-256 4ca51b21e98b6ffb0c33475b87c7e7535091d9525ff0f64e79c3a71283ff9073

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604301770834561-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4ef2556ca392f2e28a59f6ab3cbc31bdc9446867686e9c3dfc88ab5328e7c4e6
MD5 4e621545148eedf87a7bac555ac7de29
BLAKE2b-256 090d7cec01dd633f9d46b4e1f8da9e6548035103bec455534932d6d9b5f535d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604301770834561-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1eef8139ee0c4b6fccf7f93e916120a49613ef21e6188a32e11bfe7c92ce9341
MD5 ab6dbf8e4582e5d67b98c99305169fb0
BLAKE2b-256 dd7829d129603052ca22134be5460bed4941606d3426a4a0f0afe5cf0687fe72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604301770834561-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 66780c54c7b63a63f77e3d803d1bfd2bbc2585d0cdc67cf418e05d017c6e32cb
MD5 296b04e6500dbd01af800d66c59f5470
BLAKE2b-256 f2513b52933cb794a6ea9d6c3dfa6f6c3716eb47f77230baa8c3fe1d02b9c5f6

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