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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507111750843886-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8e427a21e57e4b72d7306514d8f84863fe822b0749243f5b8f19c1e79dd04cf7
MD5 87aaf823105cf304f935d7cf32f7414e
BLAKE2b-256 1923ef211f311aebdc850930d94c3c2f59a769d9c3d551db99a9172734b5d498

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507111750843886-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dc90c8533038db9d01206eaed644d637dd970b789f2fd5c88b7ac996c55b3102
MD5 634c67a77a0d99f5acd9314e744d5f27
BLAKE2b-256 7aac014e7d80eb25d8730b58aba65db0b093cf6556c2eb3f0d3e5a25f9646bce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507111750843886-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a778d4f63186c1a2f104f1a2ef56547cbd610f8560b58d5e80c8d022401cf33f
MD5 6f20f052e31858a0192272fd606f428a
BLAKE2b-256 96194f02613572ee8f0393990bf356876f018163dc2dd18028b1abcbac58a8dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507111750843886-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b60a3af20d6e475d8792dd6ba1948aa02929199c40f2675267a75010023f6b40
MD5 11923b98b1c05c3a24dcf6a746640d41
BLAKE2b-256 b2e99538f71f6cbce7ad35ba1e15a243da679ed3f465022779b6578c9f8a24eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.1.1.9.dev202507111750843886-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 db3da375bd22ea0fcf5c81336784f2474bf7e9f50b38d03b23e0535788c13a2d
MD5 80356da6280d52c930fbf7f284eb0e09
BLAKE2b-256 ead0615f917f781b78e7d4787391e9db4250e1269b7f4008e3984843f8f4d229

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