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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-3.0.0.9.dev202607241784631574-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.dev202607241784631574-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.dev202607241784631574-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607241784631574-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8dd0231650c4947ee71a802927dd3666b6e86379dd5fd6c712a6ca3453713809
MD5 9c1cff16159b5746975bbe23e7b3da92
BLAKE2b-256 09ab229b082f4fa6ed0be2273a2b5db6ebe5f32152f0c40f40a2b39e9011c13a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607241784631574-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3ddf1ed090cf1db382d32409f0e048ec542ed1f5f564853f5c15fe08de9f798b
MD5 06cb0ddd6e5b701bea3b73ae8c04fd60
BLAKE2b-256 205700caa9a9d474b40e1a1cdd1ef83411e55dad2f980b0b0cf4e5d4daf2c898

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607241784631574-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 830016d3793f8f4b2ea820cfb5e7e1ee8e47ab40ac3dab1b1b374f7f30f22f37
MD5 d5fe048ec87dd239e4044d107308a7fb
BLAKE2b-256 69f92e960414b5480755825997563851b9247c64c090492894b7173be1d29444

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607241784631574-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 db90d61732b08e71c504b75ceed9f90506217107bd9ec24607e7ff3c43607c86
MD5 13057570895ea068b80bf68b9647d75a
BLAKE2b-256 90c58fa0ea00cf09cfaf659b9eef56fca745ad7eb5df32f6568b0fb518998272

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607241784631574-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 2b8aef4d9b2df641bc00b047429f65e1e74959b80c035e952d6e28d8bb16a09a
MD5 9910e0fe6eb144af065b54393442908a
BLAKE2b-256 b53f3ac112a0373cb900ea88d5ff10d8297e52283fb026f7f9190faa9b9b2456

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