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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.1.1.9.dev202507161750843886-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.1.1.9.dev202507161750843886-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.1.1.9.dev202507161750843886-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507161750843886-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8ac93e4f46fc5b703816b699cef0ad0e89bcd8db06cd5211d5b9389b6c39e15e
MD5 27e23ca3f89fe4dcd4aff9f8ec366a97
BLAKE2b-256 e438a76a5dd2584a62068b8bb7ac2690dad38c40eb889d2789d7a7112c89cc23

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202507161750843886-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507161750843886-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 82817056156022228d6d436ed95c4e033592ee607954ab1ef39fd0bcb4c84f4e
MD5 f70963fb2c2ec6810ab8e1322eb588c2
BLAKE2b-256 08ae97af4c2710f699f21eb83ed356e14c2f91c8b263173f7056f65c7b58669a

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202507161750843886-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507161750843886-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 17e77eaf73f3863e831fa9b22102d9007cc6ea4e56bd168fabf61acaeab89be9
MD5 82c57fcd63312c716cbc22c4882d0921
BLAKE2b-256 af11dbbd8a8b9c815156b712c26d442c778d0fbe134814746c0c33e84f8c53e8

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202507161750843886-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507161750843886-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a71cfb6ad22ea7afee949d4fa85ee3d38d91acb5d908f3f1b49f4586cea30a81
MD5 226142e0ed15d3c6a5dd52313e0d291d
BLAKE2b-256 b645f8300161818a6b3ee8676481d8ac78681e6657d39cb56eefae7f9c2ee581

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.1.1.9.dev202507161750843886-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507161750843886-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 9498f2e72fbd0977f77281ec221f54540d19db42640961a351311836c8766a58
MD5 054bcd9fc6ad84f3f3c90792d1a545ea
BLAKE2b-256 bc926db5016ba78951146b466e9d0039f5d5547a44cd32e41c1c39c13d9de5e5

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