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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202605011770834561-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202605011770834561-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 1bd4e8bb1a2d9e1e4d66d7da14489578f9374e826114d19fecc3be2788f6155e
MD5 747513101eb7b8f6a9e7c34833bce26f
BLAKE2b-256 ab37459ceec4ddf0b23b18067b95be4957961debd4c0f053a3da8c50ec870672

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202605011770834561-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2b078ebb7214494f556676bf7c09d95cf4be8fe9b626949e22b9ed2c2c76e540
MD5 b3b9d68e76b242cf24126c1d12030524
BLAKE2b-256 9094e34361f0bd47ab79886c2b2e00fb0c00aa77d2bcf702de50dbcb769b28dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202605011770834561-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dfbb55427377d702d048466b645c0e8d3035f3d31c940ce8dd1b85b820de7165
MD5 48dd587cbdc24cece8f8cada9020678d
BLAKE2b-256 f9c80ebe07bd7ce512457bc61f8c9bb66ff870ff498c5659a0dece941e1e9d42

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202605011770834561-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9dbb362bad314f49ab77e7d3bfbe74c84b8bdd9a944f45854d571026c93ec31c
MD5 eb8291edd0cfa5222dc64b3789c504d5
BLAKE2b-256 154ec47464341753a05782d01f7cbdfc590ff6062f1b7ef560330eb8bb53f9d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202605011770834561-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 f11022b28bae0bf6a4ba16e88a22ef465c1df729ad18701475cb1c72ff34b496
MD5 53768be608a1e1bcc315bf7210c9dc22
BLAKE2b-256 cb56132f5dfb64484b062fbde685df12cacc43b4ed5836f36d3cae78cc31e8f1

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