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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202604171770834561-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604171770834561-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 fe7fc2da9660f2b0232b56394ef68b6b0e3c2f018b3559bf9c0eae275ac68be1
MD5 79a2d8696b20c40629cca1dabf0ec6f6
BLAKE2b-256 f0442f72396188603da2ddfcbfe34024b5576c7c64dfead1542ce21d08d18fac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604171770834561-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 23e22902d116e0d650a2859b6f04a3c41091e92aa518ac2deff117d4d4329c47
MD5 fdf4c9cd6b7bb68597ee3998717741f7
BLAKE2b-256 8fd50db8f7b2ad06f2f8de7aff4d2f31ff5905d3c4fcbfa1a39c02d0f52ba98a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604171770834561-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a60bacc0829112b736244b06ba2a22006204c04133e865a95218813fc0c5aeb8
MD5 232513cd204d31fc5f39118d58d52a4d
BLAKE2b-256 655eec1a3ce3fea0d88439ff21f2f13f95e553ae1dfb20f785ddb039b81deca6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604171770834561-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 26f86235d2d8cd90daa6cb6373581b4c67fe6dba33e03f7a83969444490abfa1
MD5 2c8e1725a1e915d0746e5375ce91f8ca
BLAKE2b-256 9998cc9e0aedaa8a0a4fb165726ad0e46f258a056070fef7ec8de912f281fa1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604171770834561-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 9ba421cfe2b546686cc6379700fc92c54a6bfcf7f7c4db5ba692a1784e44e5e4
MD5 c295fbf21afc35a6b86445b15ea8a7d9
BLAKE2b-256 325f8896250a412a826bfe22a15f1b2182fc579a8a22427a032583c6505344c7

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