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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603231770834561-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4e847a7fce11e03d5998e96c787bc45ad0f1cf0ebc585efec19c0e4a7526f574
MD5 6e92734d966910b2bc4d542ef8f37973
BLAKE2b-256 aed36b66c26f44ad866dfd4376d07c14667ca3df4694df8d0a8b1bd363536ca6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603231770834561-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f2db9667fdbb0d38caf8b8a2f46fb8822eb0af91e6b99824e129cd4db2e5c37f
MD5 620c525ad2fbf5181ee38b2fe60d018e
BLAKE2b-256 65ba889c128ccef2a1bab2c86bbc6f9a08d203e5869d9fd205a47c11d995a489

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603231770834561-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 422de48197f0da1dc49e8d05e18d44819868cacbcacfbeec0ac8b93d5fcb13f9
MD5 a2d4c57dc0f402883b32af0f592c601e
BLAKE2b-256 e749e2558d961401f9c1e7e9d2fdb913587369808dc940cd050fd3e348aa9256

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603231770834561-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 01f3da8f17766ea6c73f346dae745e9dc85b3e779338c09d31b8689d8f1fda9f
MD5 ec6d78849e515967f9b81e24d45287ca
BLAKE2b-256 8a17267f5b3819b8050160f19cd51b6a1edfeb7ac0c9715a752a9e2d67b11b49

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202603231770834561-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 d4397bfc4377d7c2230fedc12c59b907b7c6839a5dd7a30f4fc0a01c61a64998
MD5 05b8e799d2a420eac250cc086b3726b5
BLAKE2b-256 c07c410a4d1f7a7930150363d7fe9608022cdb0fc77ae2a2c44f70775af9ec3d

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