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.2.1.9.dev202509081756303741-cp310-abi3-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.2.1.9.dev202509081756303741-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.2.1.9.dev202509081756303741-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.2.1.9.dev202509081756303741-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202509081756303741-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 17cbcd47d15073eb3dc3bc59760292d97a71043204552fadcc1309151df3b07a
MD5 3484a8e6997e96417a0bff6854aabad1
BLAKE2b-256 8efd473783dc67e560e3615e9631267fab81373ead7599677f6bdbec01944a8a

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202509081756303741-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202509081756303741-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a9f322e0e0c88b84ed61bb43a0d067fce9b7ac43443a00d35a06235273646f80
MD5 952527ffc073680b243c78516c52599d
BLAKE2b-256 6cac7482fa7269d014830438c8fe51291be81b5bfc73f802579184fe09392ece

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202509081756303741-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202509081756303741-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 390524c00b66049ca6ee402268f8223c7e6559cb3cff47f0ed37448525483f4b
MD5 6fb4b1e407a7afae4758d2c6831e3aaf
BLAKE2b-256 6b2e66511cec7d8a24784e0023633988d2ca663a7db81e61deb9456042b4e2c9

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202509081756303741-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202509081756303741-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c867023f54c5ced0298efcc35909101f7a91f5c5a0e7b7e3386eea612c207502
MD5 9d090353369bb3fd1a3eb90dfda0773f
BLAKE2b-256 06efadde79dfe92b71b907eb57f811d158c1e485faa134d7b56ce825db4a9a74

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202509081756303741-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202509081756303741-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 1751ec3bb0df161fa31973d694b66f0cb2a230f71cd9a7a371cd9242115777ce
MD5 553f0a8ebedcf3cb2b1137a0738631c1
BLAKE2b-256 8b29f2b8569b766ce123927a6ea28af84454a0c8c3eb0d7b360fbc825704a2c9

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