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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602081769423251-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c2520aa28fc02ed5fa0fe41e5b00ed36b0c3dfa340b14afad1b354b5c1f1e007
MD5 8da4d49f4b14ff66bf7b567dd7276679
BLAKE2b-256 22f03dbe0f98c79ae0df390a97080170edeb4c7e1ae06b8dfdd042d78bc92347

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602081769423251-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e8b978dae5637d7ed12b03c17a0201271a1ca812d8e9d3864f9a587334669c61
MD5 4c6f8323aabeb7362fec3a8986f450eb
BLAKE2b-256 6d8e9357b8cb2c0372809ebec80323c72da3eeaa508c16813505e1a07d384d9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602081769423251-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cd271b062ede94e45fedc989bce2d97a04c13e25b0139acc36a797a01c14f2cd
MD5 614a39b7b927448422b18da7b9be76c2
BLAKE2b-256 288886dc9500040fd1acd62413925d7090eebb7a2d688d57cd5372fa775330f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602081769423251-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ce14947eb7208f5a1ea173449baf035058305a4f05d37fee442b7c9a47bfca4d
MD5 a43ed52f5eb759431a36e849cb616c09
BLAKE2b-256 fbeb9388cbf86bead799a88cb20594fe6705c535d0d250a82ed1227c003ecd96

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202602081769423251-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 04a834cfc87f9b883253fe263c71d5490ec87327dc73697dc70c1d7c4c06f74f
MD5 0e7dbce0e73d72cc1d563b7ad3243f6f
BLAKE2b-256 8c487c2334b24afb8eb40e241c61ce439097126f2d3603752da457d3ed954f3a

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