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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202602131769423251-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.dev202602131769423251-cp310-abi3-macosx_10_15_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.10+macOS 10.15+ x86-64

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202602131769423251-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602131769423251-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d6589a5e0eae57070157bc4bd8290c5dc15a1e44ca2cb73236e2ac3a53bc075d
MD5 20ab6568e8245f8a0dafaa18419094cc
BLAKE2b-256 5c5dd9f1914ebd6d753c64e8e3632ac4cc394288655763529b6058e230be08d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602131769423251-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 544b5dc7ab1a516a783588542fc601b2e8cf853ba59e27fb1319fa8da4144f1c
MD5 2666e586ca69f7912c7de307e08abbda
BLAKE2b-256 9c11a7dd6524a33aa58ffab019f8d87494a84ad50f6ed5d5f7aafae968c6e16a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602131769423251-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2d56ec37d251bc4662ed2b281f4e6e7755fa131fa836a2159d6be0ab096631db
MD5 51113c656d8117afdb684ec038a16652
BLAKE2b-256 d587bd2c73120df8f21f7eef4db59d61736055bf8de37d39ba9b7ef5b8837427

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602131769423251-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fceed907d0209e239e5aac92df541b5a700accbfe784f1ccc8e0c73b0045ad73
MD5 04c7c98b2389d3b6fd35a0c3c0818086
BLAKE2b-256 ac76b2139cf8ff525c19626b60e13e87660c0a3edd6d6c84ec460eb5c539cb13

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602131769423251-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 958cdc527c85256fcb3611b3011477239a620a03cc082abec518a8830fd21cda
MD5 7a717b8cc1b5a848a78abe38fc8ca9f9
BLAKE2b-256 ccbaa30db5f2393f1d61927475aa68d4edf9cefd6dcb4f22deaa364bf5882e47

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