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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202511191762170379-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 67fcf652609c814de5cbdd70806d99aedf76a81fb67cd0cb1a1ade7ea1cd5f26
MD5 741c59e318c8c2c3717afca0a9957041
BLAKE2b-256 244c7094dfbf1eb9a3c39ebc2868b0ef260420e6bd30cfac004b12a380ee20e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202511191762170379-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 12885513d6bae9217e311232fe5ed3bdf6c0cb9212be4f9c5933cd849e1333f8
MD5 1452aae54ccf4a3bd77b53c25cd30c13
BLAKE2b-256 b9e8b4b2eddcfa81c17929c2e614cfb505fa814032c3a45a764e0d1334ad227e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202511191762170379-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e4cc7ae182e9ffb56bb0347b6a3078e6592355d8b39505cae6f7cc02dbe5eb44
MD5 45f837cd7efe4825d931773a5ab8a3a3
BLAKE2b-256 edafb97030ca68d1f60575c615bacd4d12b2b77ae6a8f12503f55b58489bd494

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202511191762170379-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eb34594f962b08e0bf570a1aaa105645932bc2c6e2315644f6d7b6f6d638df0e
MD5 f9c18e927cb2f384c8b728d743f7cee7
BLAKE2b-256 38229977ca20b07dbbfd3cd78b32060f0186962d5d80cbe7bcb7b58e043b9d3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202511191762170379-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 865983e576c362ec51de0aab3066e4e80ccac7cf441e34886e323f629ca4d4a8
MD5 57cf125258bf215af1a2db06d2724216
BLAKE2b-256 a0940429d9bce47e29f721db26cb176a7f868b2edcdfd4c574767d8f98ab53da

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