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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.2.1.9.dev202509041756303741-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.2.1.9.dev202509041756303741-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.2.1.9.dev202509041756303741-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202509041756303741-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 999ad56d10dc81bdccf2c544677d5ba88dfd6af0cfdb9e102415a3d164f4de49
MD5 e4a5a850cef8b6174de730a234a900e1
BLAKE2b-256 306ee8b6ee13e7586d6136b9c59dd71d8ddd7a98f5d8e2e3d07fc32f8fb5dc65

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202509041756303741-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202509041756303741-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bba58c6caea0ed3c8bba4ca2c0137a7327589e589305a7edadac83c48d53fee9
MD5 1f0d77755e159c41262f2d42f0b53fe1
BLAKE2b-256 6e9103c11bdaf346731d28071312dd79f2c396fc8c036cf05722b1c57262fee4

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202509041756303741-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202509041756303741-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 904be4fb45f2c7d92758ce337cc63bf8ad08a3dfd7eeaa6eda6c9a2661154e45
MD5 608b07489c2153b4d1a6a85dee03d3db
BLAKE2b-256 d82621ba5cc231ba6e0a2763ebcf3d2b77abe25efab13535f48ceee8af932736

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202509041756303741-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202509041756303741-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bc3875c698dd77fafa303854dae1b9550f509bab903ad93eac957a0db3955f28
MD5 2c9200e79467b3e09ec55c77e8c4d40a
BLAKE2b-256 acf93f5bdb9c86b656cf194488ddbe846dce8b173843d9aee3e3b3cb4c14220d

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202509041756303741-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202509041756303741-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e11484bb66642b1086aba9d905ecfc64b3a387312372f5f126e19fc3ccc9bcd6
MD5 c0a6339ddd9c3ee4ee5e5b5cd89eb94e
BLAKE2b-256 a6ebc5b02f3293186ecb23deb2f08ee11bb1e8466548c133ba591775f13fca89

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