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.0.1.dev202503281743172129-cp310-abi3-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.0.1.dev202503281743172129-cp310-abi3-macosx_11_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.0.1.dev202503281743172129-cp310-abi3-macosx_10_13_x86_64.whl (8.1 MB view details)

Uploaded CPython 3.10+macOS 10.13+ x86-64

File details

Details for the file pyagrum_nightly-2.0.1.dev202503281743172129-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.0.1.dev202503281743172129-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 fc5d3490e2e7d764d21b697acc0769485913deb7611496f0102707470045fdbc
MD5 bd88fee2d7f4f919029438ed664b1b04
BLAKE2b-256 c3c388846583665c07603064d0cd04ffe28feed7c87082ba15988681d0562787

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.0.1.dev202503281743172129-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.0.1.dev202503281743172129-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5a14158244097c749433dbbcbe68c48903e2cc378fbece2529b6ab2c4b287ac7
MD5 2e03a47214ca25d702870462449cefa5
BLAKE2b-256 a6dd1e372ccbf14e672bddbee79ff774354b544533ee107d281fbd24e9f7abdc

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.0.1.dev202503281743172129-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.0.1.dev202503281743172129-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 eb4cae64bc64a2d30d3940544f92ac19fa825a35e9a2312f741079c0d5271431
MD5 c037193f5e3a2961b2ddec03e829b8c0
BLAKE2b-256 1546fa0e6d525f6c446145fb96de9a62d734f03db942dc89a6ce1f2930369071

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.0.1.dev202503281743172129-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.0.1.dev202503281743172129-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b9273f37feb973ef1ee15a81d594846c91827fd91c5520ccfd9e49cd4f84fd06
MD5 736d4a899954837fb96086d40011cc22
BLAKE2b-256 c28b1dc1d917bcbdb01c0f5e12bb17955bc5a1d56101bf8b73cca1a66aea411e

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.0.1.dev202503281743172129-cp310-abi3-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.0.1.dev202503281743172129-cp310-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 1fadc96be9b0121b038ee04dc3b108c589ffea92644eba6e05c062da29f810b9
MD5 b77873f026253278d7dd526e6e9d9a67
BLAKE2b-256 154b20434e5f6e366f78c630dd98e63ab9bad7204e5bd941f881c397441bfc1e

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