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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607221784631574-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c13bb68103df16ae8d5c48f0dbd1819b97795c1c150e1b9cd4b817e22fca3649
MD5 db9593353c076203c1f6430033e8b54d
BLAKE2b-256 e69f0fff2d17982acf390c8fd1733a2662ad1a8d284a59edb61e4ebe3e49b274

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607221784631574-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f6727743f5b1175f6fe75c085c8524da0b1ff1de57fc559ab54053fa84e0c381
MD5 9de78747f23c1f9471bcbf0e3eede2fa
BLAKE2b-256 4f1603e88ee432adced6faeb23be0dbdbfb62a74bc6cda197bdf776094e1095d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607221784631574-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a667f6408e9a1309e460093947d6dbd494ba0399bcb47ab4ab4cc65002f899a9
MD5 68d953a3e42a5e840d43ef459eb73c71
BLAKE2b-256 ef40ff6c67d2c91866c8a0e2d7689f252f9fcbe8badbc7dae0a2b46896005878

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607221784631574-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 935b8c41bf014fce8b35e1c9cae638322d73e779737137b4a62516871dba321c
MD5 16b2a35fcb55573b1fe8358209b6ef57
BLAKE2b-256 284662556444db70421f6c8b4261c891c6e36db691c87941c584134ebc364ea4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202607221784631574-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 58a003b0a09ce4d8941ad0fb260919421e1a4f010f10e84ce6fe3b377a47888d
MD5 c2f25c7b90bc3ee6596c810e1d179bd1
BLAKE2b-256 88743546e64c453f0023172668fe3210c02e9455af676fbd76cf09f44e00e44f

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