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.3.2.9.dev202604121770834561-cp310-abi3-win_amd64.whl (3.1 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202604121770834561-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.3.2.9.dev202604121770834561-cp310-abi3-macosx_10_15_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.10+macOS 10.15+ x86-64

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202604121770834561-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604121770834561-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 fe982d92f64729c1c4cfb65b1025778b3ed6df7365f8dfb84476574fe0aaae65
MD5 f583b5af6ddde04dde55c869b0c327f8
BLAKE2b-256 5efe771043ecf0ed16dde3bac053d196c1255d18474ee53d229c488b99c1a540

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202604121770834561-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604121770834561-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 377d0e0107c262a53a4078a44c256a1eee732663a2e9112dc5b372bd3f99ee1a
MD5 c7ea8ef90148e25676b18e8a85902df1
BLAKE2b-256 e016ecf92a9208f1dcbc4d38d7035775a4487b49295902394abbf683675c17ca

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202604121770834561-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604121770834561-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 70386c051557caf5af8d607e2b2ed361211e5a8d8d1c8fdf4411e43d58e9ba4e
MD5 063dbdb42e145a4092da511d2f348031
BLAKE2b-256 b56c14ad6a06f58b05a3543571cef1ebece979224cf5e7f1a68b3a8cc3252c36

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202604121770834561-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604121770834561-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 da3b03dbf50b4e483deda8558d1ad2fd47ed6517808d3c3ceb920550b56d962b
MD5 9f2f411453109c7ca35bbd85bb327940
BLAKE2b-256 77eabcc2fad1baea821d6c3c7a1d6bb4b67a2b1b254a12ef558b68d8441bf520

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.2.9.dev202604121770834561-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202604121770834561-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b0335690daa961f5b3d6dc729cbbd2eb20c49c85aeb1899d0f81fdb99f87c965
MD5 200a66baf19e138cb149f5618553803f
BLAKE2b-256 53c48800e4f3e9d860905837efbe9fea773d9266cfd1f20a95cea73e6334a0c0

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