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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.0.9.dev202511181762170379-cp310-abi3-macosx_11_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.3.0.9.dev202511181762170379-cp310-abi3-macosx_10_15_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.10+macOS 10.15+ x86-64

File details

Details for the file pyagrum_nightly-2.3.0.9.dev202511181762170379-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202511181762170379-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 ec7b868ac7f1ab6698bdb9d84002a2f53d063a4dd95fd3608917912c2bd0757a
MD5 ff880e3822a8bf118f368e4a80d487e6
BLAKE2b-256 77f7ecefa637f6b15550fae6d65e1f21e706d46525fb2471786e4c08ee8a020b

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.0.9.dev202511181762170379-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202511181762170379-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8ea28819a3d26731986b61fa316ea80c1eff3d8a775ffb2a64f9f6b52a0ae034
MD5 bffa2a2fa9e4155587fa193c75fba6bc
BLAKE2b-256 1eab59c7c0ded5af88955ce964b251507d0c14f4c2532b4c0bd54fe6778a9756

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.0.9.dev202511181762170379-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202511181762170379-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b7b4f7254e36e2b6faf311bca9f78a233416e7fd06e43387960a76c6a0dde697
MD5 5bdbdc0dcacbd75dbbd1b5bd377696d6
BLAKE2b-256 912882f802068dd9c51fe7af0a967516765f3da5787b767563dcf6330c9fed77

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.0.9.dev202511181762170379-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202511181762170379-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 13b8c7ed3a2d9d289f7ada026b17c466056dd7b3ee430d6188a6a91a07058530
MD5 f00488f60217d05e210c825490a9e5f1
BLAKE2b-256 da8041fdc462454e082affed9d284c376b5ae73719e8f337b1154733b0e04380

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.0.9.dev202511181762170379-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.0.9.dev202511181762170379-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 51dc15a8af301260ccd5b6dda4728f804573c581b6989af02db53db49a8be349
MD5 225efe6efd4864d4c881c646b138c37d
BLAKE2b-256 cfc5c62fe88006cb7ea0b27f0ba0bbf6e92cc0ebf10bba057c1c842d53d8575e

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