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

This version

2.1.0

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

Uploaded CPython 3.10+Windows x86-64

pyagrum-2.1.0-cp310-abi3-manylinux2014_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.10+

pyagrum-2.1.0-cp310-abi3-manylinux2014_aarch64.whl (5.7 MB view details)

Uploaded CPython 3.10+

pyagrum-2.1.0-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum-2.1.0-cp310-abi3-macosx_10_13_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.10+macOS 10.13+ x86-64

File details

Details for the file pyagrum-2.1.0-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: pyagrum-2.1.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.10

File hashes

Hashes for pyagrum-2.1.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 1af68c74af678c3347026cd0a54317e246679b774357b913145a815acb70c2f6
MD5 747162689e27ac530ddba9eca8e88038
BLAKE2b-256 6a3ae3242cbf3389a187e2f11fd70a96a24c9c71fa3cdd329294a23adbf73de8

See more details on using hashes here.

File details

Details for the file pyagrum-2.1.0-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum-2.1.0-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a888068ddab706a8de12c532c694ae6dbcc62d565fc9ca101bcbbe3cc2185c8d
MD5 7bfeeb105311d38c8bfc65956de1ba8b
BLAKE2b-256 132c9b21bb2625010c3a57ac0cdfb0172e4db9748af1884c6b90b6203ae5faf4

See more details on using hashes here.

File details

Details for the file pyagrum-2.1.0-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum-2.1.0-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 079dea574cdedfb690cb8af6b862ca7aeb29f580a851ff9ceae11b430fe6e028
MD5 85229cc30f415d21b82ac1be438c4de1
BLAKE2b-256 0be0c3ce5c6c045b7eda223ab6029356895b9ec019582cb02f4775c148986089

See more details on using hashes here.

File details

Details for the file pyagrum-2.1.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum-2.1.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1bacfed4e96c899c2f0fb1013cd5dad055fd73c289a89750de45ff9251f99b22
MD5 01ecac8edf18b980176b9243eaad3464
BLAKE2b-256 06e07625ed261a87c5072723f6942ee733e17a0fd63592263ef1f302b437ef47

See more details on using hashes here.

File details

Details for the file pyagrum-2.1.0-cp310-abi3-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum-2.1.0-cp310-abi3-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 dfa44eb3261cba8ac9a13ba1d9ccb9cda0d8e06480cca82756efbd0cd355e182
MD5 da2fc9ec26daf6b7453463555eb089a0
BLAKE2b-256 8ad172c934f9031e30c6f41391962dc103a5fbbd64f784b09358354150ce4f5b

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