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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606211781613575-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8b9ee7dc35754fb79ffd9e8e1fcc6c86e2fb93070fa8c954446bfb39cdef97f9
MD5 7d6fe79621f6a3d3212e654e820b5a57
BLAKE2b-256 6accd0d1abe629bf2e5e4ca272467b2bb8a371093d5cda1d7d70b828d05d44e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606211781613575-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6137bea581a85dcaa0aae432dcdb6333a0f4184f9027d2ee46e0df825793435c
MD5 32c41ca1fffd657bbe6c8b7a0e72dc34
BLAKE2b-256 d1156ccbaef676d599579b943c84c8b10a427df384f13e042310c34bf6b287e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606211781613575-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4d8f87c898dcdcef8b604b97fd483070e36316c768935f136a9fdf2a648fb378
MD5 af437075d0b2d906b18bb8642d574c8b
BLAKE2b-256 01288c139709dec9d24d7c7c52f85ed19d58ec56f65e9dec876d8a65cb3954bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606211781613575-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bf2c72ea18776a490cfee105c74384dd220d6812e5f0bfb027f2931a872bc2b5
MD5 da9cbe33ce8bd7cf237dfdc52749ff0e
BLAKE2b-256 980ed48c3851d3cfb9dcb6f034d733d259c291749d4befc65155772320083bc4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606211781613575-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 a6d74fa7e68f7fe95482113440aa966a88d94d3067e9bea3de68e99da72165ef
MD5 24d5ccc3a1391b21a305336b1bf3a21f
BLAKE2b-256 8e828912a8df6b9d6eb549a2e0d21dcfcbb46e881eaa6eb68df279534da45952

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