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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.1.9.dev202512171765915415-cp310-abi3-macosx_11_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.3.1.9.dev202512171765915415-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.1.9.dev202512171765915415-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512171765915415-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 3b2449c78cb8e059ad20e419c24e9039c642ac2eee30bc03b9452445f66a214e
MD5 583c777c7e153442d5ababac877f6608
BLAKE2b-256 ff37a75f5ddb01c17b323ff21e013e971641d2b079cf231c30328e7ae9e06151

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512171765915415-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512171765915415-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 46fd664a90e81ba9500bf351b0ed72a2ae06d055a135983be7c08fb8458645ff
MD5 65e4cb4282a46fe888f470c5a22e2f4f
BLAKE2b-256 5564eb7d81b5a8d422362c69350c752dd7d1c32b54309e1e45e5b569dfedd753

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512171765915415-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512171765915415-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3f8661544a6a8952663a2407e34b52e771e8dcdc46c275ff6a31e63dbacc4461
MD5 4c1a97a5829ae60f0c88ab14e79edfab
BLAKE2b-256 57b400f5a9a0874d8d863f488f6a1a688e3f5c54e2023566761f37a23dd4bf6d

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512171765915415-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512171765915415-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8119a63b8db1421531c59d4bf1e1556434ad227aa253619134dfa6cff2b93291
MD5 8a99be372b8f5c7543396e19bca7c713
BLAKE2b-256 9134139b93505a9f370af23502f4fdb08ba1033e4da92f83c803ac52e0cfe73d

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512171765915415-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512171765915415-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 5022add42b12778a4069daa4dff3f4dfa99deceed3dd7fbdab62a280432412d3
MD5 09a7aa82aca5b39429799c6f4df4ec5a
BLAKE2b-256 63906ad10892df31b3c2bc6e90022a774995116991fb8cb11470a676d782e09e

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