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-3.0.0.9.dev202607281784631574-cp310-abi3-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-3.0.0.9.dev202607281784631574-cp310-abi3-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-3.0.0.9.dev202607281784631574-cp310-abi3-macosx_10_15_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.10+macOS 10.15+ x86-64

File details

Details for the file pyagrum_nightly-3.0.0.9.dev202607281784631574-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607281784631574-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c94c9ad12e5b6aa044b09f6c1fe75b86019194f254a0607b453ee007fb696707
MD5 0b39e38cef232fa21c9e8085b0f48666
BLAKE2b-256 75decf60102b2c384a2e28653c372599d144deb02ec2f4974d8fda5cfd882186

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-3.0.0.9.dev202607281784631574-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607281784631574-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 99d6768417ca33f9dd31d36115131dc983e01cb198e8ac903b9f46b6ac92a71d
MD5 ac7a6f4d5192e597d92635ab765e8400
BLAKE2b-256 0b59046b94eaea3875e57d5fe7c2f549634e92f9e1f40da74139a98d42ea93c9

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-3.0.0.9.dev202607281784631574-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607281784631574-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1c761c8ea7351ef6c3eed43ad398b8a43ae2cf49f97ec9516b5d81358f149867
MD5 e18df297b03f8efa188d12c96adea81c
BLAKE2b-256 a885d2f5115c3dfddb7e603ab327ad6cf54edc357f798d1fd16053dd7b5f950f

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-3.0.0.9.dev202607281784631574-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607281784631574-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9ccb060b0eb6ec4ee5425f32e89155f4d0dc2d4c76ff9dd532fd0324008f31ca
MD5 5783e2cd344298961b243945f9e48c0e
BLAKE2b-256 af98d8a9c88b6970312c9680fd957f5f98d8c9b22cb747714bde61b3cc42026f

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-3.0.0.9.dev202607281784631574-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607281784631574-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 f0f8914922fe7360c68f15c0121cd7b1cb89866d3b3426c104e35c2a3fc3cc1e
MD5 e316fc5946a8c1daa3db0e50a69cee48
BLAKE2b-256 e52dd06caae686510149b02eac680a5b9aac676be4868336d7780ec1d33d25dc

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