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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603051770834561-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e9488d091e33758971c8271c9618e96a96b0005cbef4eb4c22fa9f02698e1a01
MD5 aeedc0639c4d38332506214b9364c718
BLAKE2b-256 2834a2a4e19134c1d70f18830b16802fbaf920f1b4ace6c0cd7392c69f36e058

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603051770834561-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bb421326270159a26d010a00c2e64cfaf78e4bfefff2404f0c6ed810bacd9f3e
MD5 e0d1bc36df4809d67a2e2b484ec15c54
BLAKE2b-256 9d9beade9b2f01ace5f084512853b711ba21db8b4742fb55a48feb95fce5bcc1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603051770834561-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d377e857b1c4ec64b1cfd553ce6c6b1b06e499fccec0534ee1c2b310dec14bd2
MD5 b9f2ddd3715441bc2ea8575f7962288e
BLAKE2b-256 a9c641f4bbd8d384d510fcec569d9ff3d15846a944d3581ca3db0ac819c48de6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603051770834561-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 66c93e27525d3e25143a7b13f0c40a418385b2336bfbdb47b47eaa3894026125
MD5 a01e91754c5764fe719dcc4128d755db
BLAKE2b-256 8dacbbbcd974e14740ff71be3fc3423388da88d18c3a7cce9125743e44ef93f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603051770834561-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 34d44ad2705d6dafd2f966f8c96a2ee56b434c2340e1ae0bb33be612fb207c00
MD5 4d120241b0e6d013696c64d65642bcfc
BLAKE2b-256 b635544e57b8dc95d59070bb00cde1cc0f1f5551e1b4c26358a51792ce9b975b

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