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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202606231781613575-cp310-abi3-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.3.2.9.dev202606231781613575-cp310-abi3-macosx_10_15_x86_64.whl (3.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.dev202606231781613575-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606231781613575-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 1a290ab8311672fc74bf41d75a2a85f3aaceaa1841d2b36c1eca1a0bc2d61b9a
MD5 738468475f6e9dd602b724441ceba10c
BLAKE2b-256 77f5b549234b5342d9335695dd05717b9c643c0d2d43b1a4a7fe9f661d3b021e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606231781613575-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2490b8540aabaaab80cf05e2bc68cfc6090ec514a7efad36b5a137a39af7ef90
MD5 1430ac98ae1bde69bf3911878e32a8f5
BLAKE2b-256 4f5af1c59107ac95561182dbb08cbc1db526a3c01bf2002a5d287880df6172cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606231781613575-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6c358eb65b2c17257c0c076eef5453e8d8dd1af852d01662f7329374c7ea4e31
MD5 9a830ff8cf6f87a21effeca3f01c0445
BLAKE2b-256 a8a34727f36bd6b764c79ce28761d0c8bc2914815b0f3dc813697524a2e1aec1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606231781613575-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 37970ba60f557baf1f30be6aaa3751ca617f3230b4276a8c2bc2a67b78f01da2
MD5 f09a7c749acb23705e6bb05191261bd6
BLAKE2b-256 bbc931785849e71f94b5b780ae671b23fd1db73121eba79b9bf447c0a59e1c8a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606231781613575-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 64da8bcaafd30ae0752cef76b85c3f2badf0efc920384c7916a5fe0449d8e117
MD5 0aaff40f3bddc24f0c1e284b77cac212
BLAKE2b-256 cd6bfa3fce99dd48719a1f20a5f7e3274e62fffea4a18ccbd83af8d8fd047dc4

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