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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.1.9.dev202512141765476135-cp310-abi3-macosx_11_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.3.1.9.dev202512141765476135-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.1.9.dev202512141765476135-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512141765476135-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 dd0e19c91aeb94110d4d0afddd99d53f6970f61f9928c968407ce57e576ad0f6
MD5 13b8d1d48768a9b1ca2c682ed493954d
BLAKE2b-256 5695a8d598047b80e1ef6ba61d7160cf8df029e60e05a6e4e3ae8d6464c9a043

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512141765476135-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512141765476135-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f889fc966c5dc2f1cf9a18e92e52aa81a9f3aacbd852470534ad8ff4159b2434
MD5 0e2d0b78e2e49fd491568938263833e0
BLAKE2b-256 1a742eeadfbb39a53abf82b7f4d3f41c66f3e454a5803ad691060440dcb71ce4

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512141765476135-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512141765476135-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8427d44198eaab49f839e5d8d752f5b5354d98c7d89c2d261231199e520c549c
MD5 29c3bb71a956fbe3ba3f60862beb8d72
BLAKE2b-256 6214dc5837a40ca0e6525fc57995cba3acb35869d50ce7e0f37ac3a8a97e8061

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512141765476135-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512141765476135-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8c8077f78ecade3c646c1572c12d02c797ebc60e5d062fdf78b906f93478a200
MD5 d7f2ee03bc23f92e29b25466713651fb
BLAKE2b-256 f21ab8adcc0715f30c6e5da3ca4da11d01a2d2020a1ec86759bea4e99491c7c8

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512141765476135-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512141765476135-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 1406cdd2677f7a7346e02b49a751cafc7c58da9da63317c74340328456efeda3
MD5 4b4fe42e4a0df929ec3e0bfb2a00834e
BLAKE2b-256 70175d7b2254c9157dcc91e460e3a4fa3d01c6d699f3fc3f464b6356817dddf5

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