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-3.0.0.9.dev202607181784318865-cp310-abi3-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-3.0.0.9.dev202607181784318865-cp310-abi3-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-3.0.0.9.dev202607181784318865-cp310-abi3-macosx_10_15_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.10+macOS 10.15+ x86-64

File details

Details for the file pyagrum_nightly-3.0.0.9.dev202607181784318865-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607181784318865-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f1635ebb96b566ce62c66852d4b170ee81cdc7625e139fbf2c66bcdc57aed73d
MD5 9a173b871efebb8e8ee66f29cff684b5
BLAKE2b-256 48bf8927ab9effd53319b24ef92a8c4a5735058fccdab4fa3a8aa929c7471e37

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-3.0.0.9.dev202607181784318865-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607181784318865-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3d86d29141baf30737d793c6028b17d8ab2de02dd1e1db172d8ca95cb7f37819
MD5 1b37f88096e5b089513cee1e53bf2aac
BLAKE2b-256 8394af0f437c9a758fe763349c4ea70bd20dba78e58c4e058219e5ae23670d2e

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-3.0.0.9.dev202607181784318865-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607181784318865-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f3a0bf3c2a425de9035fcce0f1b6e70d5adcef5d0945d5c54526ac176763c263
MD5 ffcb13f6b7a1bf805535a9f91c413f5c
BLAKE2b-256 72ac4ef1afa122ef60e24404f34920198b186b665055a8c348897d8650ca6505

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-3.0.0.9.dev202607181784318865-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607181784318865-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4cef0963c8e37bf6814279adbfff90a279397e0cfc82073e0f798925b1c86263
MD5 fcda5169f4f86d5a3ed3b81e8eae674a
BLAKE2b-256 c33842aaaf7a87fe064c1c5de71d46be3932b2bf529db20104865d102c04ba20

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-3.0.0.9.dev202607181784318865-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607181784318865-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 c823a4f82bf9ebc43010ffd8597b13df97a4e788dfdfc3d73a834eb48c749107
MD5 68da34dae633fd7833984db903106e96
BLAKE2b-256 0b1a7b87a65951b13a761f8ed5b4e3e0b3ee4c4fe55ce186a46eef4c8447f6d5

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