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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.1.1.9.dev202506031747485979-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.dev202506031747485979-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.dev202506031747485979-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202506031747485979-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b89312caa1d895566b46b3f6afa671558082ea9bc12c073f98f62cc4efb79e04
MD5 f7726269ac50b964314e2ad4c7564e4b
BLAKE2b-256 c9f5cf92054663f69685242381c0b45fb187094104e421221cc84500068017a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202506031747485979-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3cbfd5d1b68cf7443534755dc56b224c4a3d96eb0b03608115e4df22bc5da22d
MD5 8991c350fff9d836d5493476712829cc
BLAKE2b-256 ce33ef00902ced96511563363c29c6f811b3b12967fa33b382d2d6affe6318e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202506031747485979-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6042ffba1e9ffb231eed94fa91640804a1b235476e1548293ade2e99110fc9fa
MD5 6a38f37560a0dd367aef97b3165e1c0b
BLAKE2b-256 043e874500caf2861af5bb0791d22870252c183fce15b558c6fdca7a2af2e407

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202506031747485979-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 783d2068d81ec3bfc7045fae84cfbea4fa30e867c0f860a69e69bcd46e40a51a
MD5 d414bf23f38a0e609545c319ad7f5038
BLAKE2b-256 665c74c70d2016af7e5a1727972f599c103d59936a2936bba4d84d01b3b258a4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202506031747485979-cp310-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 441c8304542c60067689342775a3e72a638fab6345d12780394fb8e4c48f6424
MD5 f587d8414ba74d548e1335fcdfe8c8ef
BLAKE2b-256 c1a93dd5c0e906da8097928d2693287ba936a491165f86077a0e885c836427e9

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