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-3.0.0.9.dev202607311784631574-cp310-abi3-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-3.0.0.9.dev202607311784631574-cp310-abi3-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-3.0.0.9.dev202607311784631574-cp310-abi3-macosx_10_15_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.10+macOS 10.15+ x86-64

File details

Details for the file pyagrum_nightly-3.0.0.9.dev202607311784631574-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607311784631574-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0c8332bf0ebb040ee40b87716c70b76ddf8102888776e5a8ff2d021b1cca8d9a
MD5 b20847de60c4027d7486d2b7ef59527f
BLAKE2b-256 37b5e873a4e20ad30352d8dc736e20014bd29b3cfa129d3ad96a8937d6f5d652

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-3.0.0.9.dev202607311784631574-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607311784631574-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 459cafe976991069a5840a3c9f18afd54cee97515b8eeefa63427592d8c40e0c
MD5 84c042b85d64588242e7ddd06d8a5bc2
BLAKE2b-256 39ab1b91e558b9d7d5da2460d3737636c95f988c0aa575186a45b4950c718cc4

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-3.0.0.9.dev202607311784631574-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607311784631574-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d2cc3e31bf779c5f0ec5fc6644552875c11bfb5326851346cb92935450f2ac0d
MD5 5db97ba2cb2ed2e2c37d794ca5bf4985
BLAKE2b-256 38aa40cd24f8745fa959e0cd33df4dc96c3ff5c73a12c8adbec3ff775bf3e993

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-3.0.0.9.dev202607311784631574-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607311784631574-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d8a744ded28d690bc99f0fb5317f6c3a4fd4f802c81120bdb49727332b1ca4a9
MD5 0e0554a7c5b7989d582767e2ec2a1353
BLAKE2b-256 242b29d6811a5847c7fe6217e37fc0c2a902a6c4f61bc25ff2cb691e32e74802

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-3.0.0.9.dev202607311784631574-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607311784631574-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b6ab0f9fb34fc5ca8e3422514c6df4a36525c084b9d0519b4f27cfeef29cda6b
MD5 9d9e62d733ce3aa14528ede99a83d369
BLAKE2b-256 cf6ffeb92ee345370ba127d23ae2efe4d5b2f7caa7731dc01f3ca57d54f92308

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