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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.0.9.dev202512101764412981-cp310-abi3-macosx_11_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.3.0.9.dev202512101764412981-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.3.0.9.dev202512101764412981-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202512101764412981-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a88794642628a4bd9afce680237f9cd4e8b4d8208758977ecc66a00e278c5489
MD5 e56990853f754c6ee19fd3df55b18469
BLAKE2b-256 d331e5b6a3641194a62883517649ae3a619e98afcc9afd5ff9731470b3aef38e

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.0.9.dev202512101764412981-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202512101764412981-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eca56807bf9d3acfab6e7b47f5d5f49792c776c2d2a1a843c466c79f4139f8ce
MD5 d936990fd48720363d6f03fff6a721c2
BLAKE2b-256 6eaa1c7913e5388e6d45457c4de6e09d3f4a90cb7ec1887507248ceca608caba

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.0.9.dev202512101764412981-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202512101764412981-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8368cb421dc9e6a8929670b9d7d0207bba73dc9111938602c2bbfe05eced6403
MD5 c6bff32f7d660585f9472219b6422d18
BLAKE2b-256 9f66e63a328ba863a2d0d5d9563b193edf1851a2b872751184bb9f8a62482212

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.0.9.dev202512101764412981-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202512101764412981-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 61614af07ed834aaabb5a54cbdfa046cfa3875deac62b768456bf80764e20005
MD5 2a5138ed8ea0bdcc1992586bf9005821
BLAKE2b-256 bfae892280a87177cfca6d9b3b71e6c1c096fbd11ec82d0c5a11600ac7fc5f92

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.0.9.dev202512101764412981-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202512101764412981-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 8618571fec60500c7197f4cd9d621f24f9e66513b5cff89e977e26b6604546d9
MD5 4eb1561f971157fcdc13c9bd28cf8645
BLAKE2b-256 9f86e7107fa3706790c20f47ea29c6bc0acab528c12986e12a3c7bd710347458

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