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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202602121769423251-cp310-abi3-macosx_11_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602121769423251-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 40d4460c90a6d1f395aac2561a166a6bfd8740662a53ed1673ca4df4b15f73a5
MD5 df10204858a7ed636deb81fd84284d4a
BLAKE2b-256 201e83afcd022f4f1ac8a6c7b3316a06a3ebdeae5784c36e288486c0712c6b77

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602121769423251-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a8610df0b593cdbda9a516e9fd39ea2bfc314d15e0c8bbf251e83b7e19810588
MD5 13b1b200f30e95bdce56f6f739df9acd
BLAKE2b-256 f68e91508625e11d19eaa17fc1e3ef0c6e8d7e51c3978cdc112212ce75bd5f4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602121769423251-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 74ba4cc19e7bc64e288778efa3847de102e94f5ab1bc3a6b17a460a56e0a9fa4
MD5 45cd341b191cd38b9fbd1e8fa886e067
BLAKE2b-256 3328a7019b4319c9f43864d4a9c98dc5bea8827755aa73d17e51e5135f00d1d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602121769423251-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 abd05e9a63cccde2737797f76febf9b20e9731b215d650b9526e796be80bf698
MD5 af53b3be496ede51a188d6ae1a1273a3
BLAKE2b-256 c4a528a5d06e69e9bd52ab1732b50e0ab8354fdbaf692daf2cf0733a7c9bc604

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602121769423251-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 5ef3a7313c19e3087defc6fa4d45c23e42ad47bb2ee983dd69deef37895706cb
MD5 b08e3d810cebe63423d010f8b427e1e8
BLAKE2b-256 f2cc8cddfc4e5ace8b6f8035f0e6b9958a20cdd00b41c94975fe52984539eaef

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