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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202607171783782863-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.dev202607171783782863-cp310-abi3-macosx_10_15_x86_64.whl (3.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.dev202607171783782863-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607171783782863-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c8a9720bed0f652a8c44f96ef949e57d56d87c4bbb0e9ecec78fe0ab7aee67ac
MD5 465b7aeb87fcb035426d543f436d61e6
BLAKE2b-256 e274b3f0dced7174e6840d24b99d3be80fc9bf259c40e1096428148455903315

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607171783782863-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 756cb3f81f6614ddef6a9f1fbb9120b077f499380f3b0739aecba70134c92565
MD5 9846b9605a6f8c758c3fc4610817dc38
BLAKE2b-256 cdc10e40730c0ce6626d08bf0266041e22cdf994d91ceaa9384a797e1c620e75

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607171783782863-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f2a7e6460ebd4844f1bc5b2a9e6f211905e6c3a6624ee6e70174db520a919771
MD5 457cde82a2d9d5c3077380148e317b88
BLAKE2b-256 2169f0b5968a5f51ae9122967ebb32121f10dd3a67caacf5c6083e00d0968521

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607171783782863-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5c377de44ea56ac7151d5dc22336fe59988de7297569f4cc5dabcff5c6d760b7
MD5 06c8e8a6c66056a4ad7d6157237398aa
BLAKE2b-256 2bc1c6423232b2b2e1a29206e9567dd7000a7d1c2dd0de6625b6637412540f6b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607171783782863-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 3bda6f071cd278a2f53ede209d1786379117697fa949602ae160b2d377231ac8
MD5 92e6be87968d65f460f215067c2a42ad
BLAKE2b-256 a2075886dd186374e1e8ebc9f19c5ac0bf0ceda77b565eb88a535d902d24fc9c

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