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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202606121779285115-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.dev202606121779285115-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.dev202606121779285115-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606121779285115-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f0cbc21203837d940ff2fefbf786a8ce16ac581bab712c960d67b4ec183eba03
MD5 b3a9dbc8cb8f72d6f68d44d506466937
BLAKE2b-256 b3d2b14593abdffb653fdbc34a59007830599fbb649fc1b2b9d17d16717594ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606121779285115-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a84af156c65b6b6d8949eac2e6d49c9b1ccf369298d4a5afca9fb4b7cbb19669
MD5 011d319731b79d172fca8c7a807c34f1
BLAKE2b-256 072caadee81ef2f0a0b8f4577c4d7157effddb5b81e1d1d03e375b0d1bbb7dbc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606121779285115-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c3a9e0e7129c47b2419fc3020caa4bfaa884fe9d9d27f317e15f6c4b1154c37f
MD5 70742838a0926509169a7926fb764049
BLAKE2b-256 1eddf30d4655f2c1fb87bf7f23dad9ada0069c215eb1e5eeefe71f365590b847

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606121779285115-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1ea71973ec22db53f804fe8ad82138252b65fe46abf54f7ee444e7da1adaf7a2
MD5 d737a82d9d30c7a7fd8ddcded6bdc71e
BLAKE2b-256 f4b2b940e768f91003b0083fd8aee9362fe2d2fdf10e25f103ff8a52516c8843

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606121779285115-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 12b57ea8f37603973fa3679bde32cc76c66535c0fda92798d4bc5c6d1d58bf10
MD5 24856fdf058382d68d63a3c3e6a775d8
BLAKE2b-256 bd6c29db1556e1d73bcb3240653792425c69e1bb1674bb8add9a1a64fb0bb023

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