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.1.1.9.dev202507201750843886-cp310-abi3-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.1.1.9.dev202507201750843886-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.1.1.9.dev202507201750843886-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.1.1.9.dev202507201750843886-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507201750843886-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4ad5bae5d7972cdae42618b3cb0037b85d63d944a04a32934e5eaa2e6eb05b11
MD5 a961429eefa6d2a16518f0b208ffa757
BLAKE2b-256 409aae6a2fd8651481962f9b51ad212d7b7a84714e85569c5a0205e5fb18e141

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202507201750843886-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507201750843886-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 672657b83c9a6f9221d0f890995d7c67253b8cecb79ff3f2c635a0d3583607e5
MD5 412887ce62521e0f95b1b144bb898a53
BLAKE2b-256 d9a75f672aa93bfbef6aaf216b956e8d5a0d8a8f6b9d8a0f916b23bf43d5647b

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202507201750843886-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507201750843886-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 058d3ee4e1cb10d8115cca7641a88a251093fcc2633ac48d578e15a132a3cf92
MD5 80ca548e70c290f93e97531451609f4f
BLAKE2b-256 8d30b7de6283037048039ccde3a2d551868b72bd5b27464027c9beb85f6e7021

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202507201750843886-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507201750843886-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e1e26135d02774d7d9c08fef3d02867308aad07b5fe187a89f8f185c83b659e9
MD5 ddbce70183b4426483f56fcd5fb6a469
BLAKE2b-256 1ec866cd1ee35787a7a69711a76a8fea412f2809958359d5f81dbc9087b2e0c7

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202507201750843886-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507201750843886-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 4e519b8dabaf3f2e7e8663e5a444f7d9c75f5dc95d11ce6c0f0fd5072745c675
MD5 9656ca635faaeee46fb291956ca52bdf
BLAKE2b-256 25303de07fc6d797336b3ea565a0e1c22b0df785a46eb71eb6b9516c549de9e3

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