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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.1.9.dev202512201765915415-cp310-abi3-macosx_11_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.3.1.9.dev202512201765915415-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.1.9.dev202512201765915415-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512201765915415-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0c02bde725df371c2f9a29f933397fae40bfd0bc8e2a22401704ec68f20c8752
MD5 9b4235d7b7aa8414adca780975e1d096
BLAKE2b-256 fb8041b749ca637031d030ca942dd84835233cf95020a0577ebcbca8d074e8cc

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512201765915415-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512201765915415-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5c9a61ebd07b488af905c9d45ec67b19bd36030ce86dc8a34f683f3c4c6c61ee
MD5 76d66b11d90bc51aff836fc5e7a835d1
BLAKE2b-256 6f2aaff3b844e9f58c3613307e3d49798b80138e2d515ca5c5362b46b2e0bc1f

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512201765915415-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512201765915415-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 121d46cf0bae301f4c16590eaadab0ffac0017c739f18712a161ad81c537116a
MD5 80ed8c03731b11066deac970e275dbec
BLAKE2b-256 f1af801cbec7a13241d9b12ad51fb2b8202fc22399d9d7c7b20e54da827cde4d

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512201765915415-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512201765915415-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a5cdd24d1d64dbf6fa120ebfb1381e332924fbf9de6f367a6f96993cfd8f3e99
MD5 e881005e9fad4f31bedb736efe2b2186
BLAKE2b-256 e5c030750d60f95b1d2f9395c0531dbf1dbd6e7f77e3f218cd529367fcb5241a

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512201765915415-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512201765915415-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 11dc1950997482eb5a2080dcf0c58ba27e293386e45322c5d96b8787ae37a974
MD5 3a51511d42223484dbbedba5a5a9866e
BLAKE2b-256 abf456dd104530c5973632d130040c3925ba644676c2a2a11421071ab4370fba

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