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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202605191778867036-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d95e2aca65ebc709eac21b54671038a3f3eced2f7838aa88255678e2642c77dc
MD5 6c8f2a4923595362a36a7d1010e04492
BLAKE2b-256 77eddba75f4a4acbc42b8df87469bdb6ffe8ff18a6419d57f7b1cdac0bc4edee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202605191778867036-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 89567f22805a4d0bc35bf82f3d9fddd591bf0b441c3541d82c03940cf35f2b66
MD5 4b837410457e086e0215a8f508dc3d99
BLAKE2b-256 c8247561799a556d4c43f9c2b3471363cff03c68f4cfffb8d86bbb66794fec59

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202605191778867036-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 77d415858187e352876b8a67ab5d8da470b17baec8a4301184e5a3e7cdbc0a8d
MD5 3644d9c06f9280cdbf2ca3c72e132579
BLAKE2b-256 b3c339495a82e2b4cfee7d6a1de07546a2426e1d981c4d2cfb86b46bd8ae142a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202605191778867036-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5239c4fdf578e9d6afb47515d5ae253855620363369f5d11b88392f3690246a9
MD5 4ae89a9f5a20f1c0413be1c8cb8fa377
BLAKE2b-256 a78644dcae1e1f8aa62614c3876403de66ed5506017091f15a0747624c00be5c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202605191778867036-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 56a13b681274c2bf478c1cd2a8dcbdd8dfe5b6683770d3f25ffb9aac67b0b107
MD5 71985f64fab1b6a3e33f7f71cd7878a3
BLAKE2b-256 82bb8de90fc9e1322d8624b24c2e2facfb3cc430dcebd60b222ee20c2d71b41a

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