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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202602211770834561-cp310-abi3-macosx_11_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602211770834561-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 cbc942970777cef2729f93e1830780dcb490b8e4d60a20f94661c056b6360bcd
MD5 df412a225797a6202863a57071f54c34
BLAKE2b-256 dc21e50022e4d58d2aa93d5c0bb984ffdb4ce6c360a0058e128099cb632a37fc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602211770834561-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f921e8cb14b6000517538bea2db434dbd55a0eacc88f17d48d70fa1955217ee6
MD5 3dba07a2e6a24bff76c8ee6e47bf4745
BLAKE2b-256 4dbe4b76e4e82a584baaf2042cbed9bb65bb02feb1a1d4c2eac4839283ef8c7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602211770834561-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e9a678d270aacce621a61b77c5299337aa28dc19427d044e5ad8645585e0d555
MD5 44f4d71b7c56e45baa8b0868ed8e6191
BLAKE2b-256 4b5a8c25d27e021a82d78f06d2983fe51bae941c720c86d3e19f14bcbeabd22c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602211770834561-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 38eb1359de80fa297b4e3f5c1f2f87307d612d75868ff21b9cbea6a427626d70
MD5 e334d7831fec0dd5e55f04bd318ec387
BLAKE2b-256 a7052d19388ea82c38466aaada4fd39565776a7f71e4d664c0f9f4ee0865ec56

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602211770834561-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 8b0d1c3a3ebdfea0abb9321ef1675ccef6638555fc186826a228f05c5dfb27d0
MD5 42676ab829779eef3b7af8a4f2cce42c
BLAKE2b-256 0c0bbdf5450f565033674a9cb94402ca9be1a5f64a11a3d502b93794ec6ba189

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