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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604091770834561-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 025c876a7a5821246e5aeb423a6bdc2d19d03b4cfd4f8f5cffc8d9e302110889
MD5 7ee147c9cb1741cc4659a55f4b8107fd
BLAKE2b-256 e7be9aee4df6bb3c622a6174af523a61769e3db4bfa2de5c911134adeefe5898

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604091770834561-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a9072a0e1758441c172d9f73f4671311747b3f2ef38585b7e865acc2e2b585f9
MD5 badfa4f7ef5eceb82deaf7caab689fcb
BLAKE2b-256 28e505432f333a54d19b53ef950795030999e743cb6693d88bb6b4fc22c27816

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604091770834561-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5f69d21d94ac94d7b2ff61eb915e5e2e3c1913051f25854714377659089801c1
MD5 37e69641bea9a4b8929e1d1bc037d581
BLAKE2b-256 b2dea212652c72cf3e09cdec99dc36b30e4a96fe7b6d7fc5e49dc1aa03aba50f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604091770834561-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 897622b58af7b6d0197ba81a133d28de056153bbd36ffe80abb92784f6bed6b7
MD5 2806c42a17b7f2fd949cbf59aabc8a86
BLAKE2b-256 bb1bf3456a70a0f3d7a541d7a03c1bec70ee02b3b7c8ae9154586468fe12676e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604091770834561-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 0b2a4fb858d6d5446a201763138b389fd0432d4ac13bc4e3b2809145cb9d6f72
MD5 682503da1de48141a56a64d91fed1448
BLAKE2b-256 00d03a0537cfec594a1caef290d995875a2e84a4623a63834bca3825c6cf2b2b

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