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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602271770834561-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 590e52b6031322880a0f289d02ceb2cc1217dce09ac21de565584cfcb88563e9
MD5 e38963085944ccf23b69564c8b89ff1a
BLAKE2b-256 94d0caff32bc0685594fc6a0962a8629dd7f3ebadc03f85afc67e7c6c06ca345

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602271770834561-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9ae09fbaf0e2c4994f47d91616195f4660229f80c5581ba5b6d1aecadd28cb2e
MD5 6486d3361bcc513ea9fd64b8f142feb3
BLAKE2b-256 2c926c1804cbbfb2fe196176901e664a61867b0f281f97de1c647c6a54654582

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602271770834561-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9aa663e07216108b22b6b922c0b46a82a988d632b50412e023890e0c22dd2dda
MD5 4d9e7421dea6e64bff4ef92ca6534907
BLAKE2b-256 ef9d4b638507906024628e944e12436d9958b71c33e544c4a2615aebe3ff1c47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602271770834561-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f2c468016fed3a176d4521e68d1cc5e8a74520ee947e8c55ca93ebd40e69380f
MD5 033affbad5640c15a00073f8ebeff7c0
BLAKE2b-256 0929de90e33df978d1e826a500c26280d0b0406687e90fc5be81ee28abadcd60

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602271770834561-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 2e8f5fb760e62cf3413fd79bb1b1a503d2e6e5298f2cfd82d046bb17851cedf2
MD5 777bdfca5e68ed84ff18ede075fbba15
BLAKE2b-256 9bfe4bde59d7f57b86fba83394c4b6e284d13cf9f9e582c95d3c3c8429fe61c2

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