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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.1.1.9.dev202506011747485979-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.1.1.9.dev202506011747485979-cp310-abi3-macosx_10_13_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.10+macOS 10.13+ x86-64

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202506011747485979-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202506011747485979-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 46b3fd45563531a4c94ad2aa0c920a8d6a5300566aa28f9016349c7b638b3e23
MD5 436956955faf389dbe1c28cf66fa558b
BLAKE2b-256 b2a83dd2790424a3955a9f8f56ea6e1a7afe4ba612bab7dc8f42357693623611

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202506011747485979-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202506011747485979-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 228ff6f0c8161ba75ce0e6b2fb8c8d2142c6f79573ebb2ad2aa5a0b29d66483b
MD5 0c4a857476cd2d8aed71d488c773fa96
BLAKE2b-256 cf2e855c46a73a9c048739ce06d9dc7b4aac756830d8e2c4a4a4eb99bc0117e3

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202506011747485979-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202506011747485979-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 96fe24eb53ff664144cc7ba50e45526a3a694d81526265f4c888802360dbd10a
MD5 0aaef2016d74b3ff870e7d3c1ddbea8b
BLAKE2b-256 6e1dc22138c1d55728a598efa90efac687ccce3d89aeb462d5f215a8be13087b

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202506011747485979-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202506011747485979-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 166bfd8f7e9d71b1fdc6ccaacb647cb4982adb550b7941bb476620b1e99a84d5
MD5 1aa13352b3f2224171d84a56040084c9
BLAKE2b-256 ce9a31dd40edf8dbcefad5e88cc0b17a4c95b49f5a6479eb063799acdae1dd1d

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202506011747485979-cp310-abi3-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202506011747485979-cp310-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 a992a635c90574b4303d89b6793dbc9a2a0f4bd5de7269a987841a6c649ab826
MD5 bbf939475fbce888226a8dcf104cc1fe
BLAKE2b-256 2afdd5181cfd629e12cf17fda39f9be957027313bfd92ab97447f25802120366

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