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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202511041761820095-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 ecbd230c4aa8e3eefaf315aad4dd83f4afff6491787614f7c35c682d4ac89c66
MD5 a069993b4c2d0bce485e2c8d911b1cae
BLAKE2b-256 a484916ca979e75deda578a6b57a2438958d52a5443e3ab0c1010ad046b2fdd1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202511041761820095-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2f14f14d1d3deafa877ce3f6e8d567c095ca500379349700c1a15873cac804ce
MD5 1c16a33ff000210488907301670a472f
BLAKE2b-256 514ccb235e03144b59749cbf4893295561baac097faafb3fe3e5987de6742f8c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202511041761820095-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 25a76b20cbb2583454c6cb0324298e8a0a7819c7c91f283d9e2dc5fe5951decd
MD5 b658379a52fcd68e368951910a2919f1
BLAKE2b-256 f769e783713950b0dbb766134854d5452c8797ec2ba3d261125e25d1958a605a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202511041761820095-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2af4b1b0c9675f3cb249b2e92abb543be0ed25872b62f7557b1329b55fd285ec
MD5 5409a49b1c9dd5c075e253bd60de51c5
BLAKE2b-256 ba89af85e7fa46a373e0cdff76685aba5443446d1dffb4fc594627048043b9b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202511041761820095-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 fac478c0d736851ad42735f9a39e100397e02ad84cc1915ea87924d26d6c1211
MD5 99a46617744cfc335b0cb80beec2db98
BLAKE2b-256 41d00116aba9a9616eca1ef7534f417f3f688fb2c51bf3d50d5f7805ab4a1675

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