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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202606081779285115-cp310-abi3-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.3.2.9.dev202606081779285115-cp310-abi3-macosx_10_15_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.10+macOS 10.15+ x86-64

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202606081779285115-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606081779285115-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f0e6b2c4e17d5ea7768b93f819e6d650107823c6f34a716f6822774e052451d1
MD5 f7e18d9bc360337cfdf426b67f215c6b
BLAKE2b-256 1802a873714667d51ab09f0af9f655450bcdeb998bd85b852279b7e5d99c246a

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202606081779285115-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606081779285115-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 783027a75c550ee8c839fafc63cf9e136eea5f47749103c5de4efce1dbe95036
MD5 63b185a5665198799b814d85669dceae
BLAKE2b-256 4908b80da4e0d70e736f9f275a741d2ec9506cc4617cdfab67d1d134e21cd5a3

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202606081779285115-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606081779285115-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e31296524ae7bf70922095fa123157b7768a6aa1a9bdc43ba5424e305d22686b
MD5 3e82288bebe7fb0d6f6cc19939345d09
BLAKE2b-256 61a4ae67d5e915652de99b4751ac330cd50d882d8d109d2ddbbe5aa7ab188f98

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202606081779285115-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606081779285115-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 78109828da39d0eda2974f634d73a3dc0687bb792f18939c3a2fb9837a48d645
MD5 b7bb72026a0a25815ea37fdc58dc0e84
BLAKE2b-256 72f4b43fdd2c09cd2bf8ce158ed8c2d368b65762d4039eff88306f13c449f672

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202606081779285115-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606081779285115-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 cfe7c55f1a2d2916583df7b3a6007dac105ad7ea509367c71f890b4a22c88859
MD5 81ed1a30eea16f8591869190f74a196f
BLAKE2b-256 64e7bc22c167b72c12cd436ce67a6ab014be5cdcab74be61f8438cccb6f63883

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