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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202601041765915415-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 60fd9cd8e8496e552e1423e2e302977348d5bcf322499fce3dc1ec84221b6441
MD5 aa27b843ecdb38dbb1ec2a9501184bfe
BLAKE2b-256 7b35cbccd78a43a10b4ae1f292f4ff4f7d3dcee0c197939187aed24d258b5a8c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202601041765915415-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3a448a3e474c5c8ef6153db48b4f6589b148a208da946b6ff4289a90d5751a16
MD5 7ffaf4cc7f8de879a4050e5fbc6a20d2
BLAKE2b-256 df7f56c2e241db52e412933629cf7436655e3aed8a821f82bcbda698b72ecd81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202601041765915415-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b201a5f25fe5f1c7619b19a6a00328decc7f450835820fd9b4eb4b0ef7d7c664
MD5 02f83d34e67f7908b11f6bcf49b2361a
BLAKE2b-256 79b6fad553650182c5a6e64678a01f4e781b7141e5a26d59c134daa2cf5df85e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202601041765915415-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9ec2917e7bb6abf125fc7962f1905adc7f49658f92a7bc17fa8d185b25dd3eec
MD5 d3219d2c46590b2afa6a05ae975c59ed
BLAKE2b-256 eac21f30ce60536fba5359abb58c9ae6ddecbee2a605e266cbbaf8440eec456c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202601041765915415-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 28ef2a79193f0aa89ddc2edb237f48b4702f052f796ac1925edf64d3d33056b2
MD5 7aa1f0a17861b51474989605dc963136
BLAKE2b-256 7cd4c1e326facaabc7b54e12f016f9d3e333c8c37c40a902f0889b96a0f849f5

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