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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202608011784631574-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9f9ebae3589ef3e1661f8172cef7c4f9ef511148f38662b0a92e70b5cdb04082
MD5 c7fd236987a270bb29c5ee5f9889f16b
BLAKE2b-256 a585986185f0ccbd1e299c993337071b0254efe927789ed2e1bb9a4e9005535d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202608011784631574-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 52be1da96f866184ef945806f5b6a9eca2379ba3d1444f4ff461a87ba7dc56a6
MD5 a0d98c82f4b136c0cbd739aeb018b203
BLAKE2b-256 3e07586e1f33ea5f33ebb3897bc58a9646bc2c7c378bdf228ba41357a90b7351

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202608011784631574-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 098bce9a7d1b9ae60168942df7bd2844667f274d2ae88ed3579b94ec73fde7c2
MD5 5d5ee5aa7c565716146c7b3c29b0849f
BLAKE2b-256 9854800f2f011455624ce0a5ad284d2e82b4614c0015e5b83dc458f690c2b8ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202608011784631574-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2b63d525f30c28ff5e9fdd87dda46bec30de1f9d4ab9562389d4776f956d342a
MD5 f66339050a747a8a5631d32c04a2525e
BLAKE2b-256 4341e3d5ede9e0570a29e4d9db7f9544927a4309502971224df0a68ee688fbd4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-3.0.0.9.dev202608011784631574-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e135260ebe3ac288dc5aab615460ea7d0e2867e46198fe67e1c7efc5891fe551
MD5 573ec2b4d7efb64d21a7338a55844129
BLAKE2b-256 3784556bf9a55370ae27577e860e709fc808b5bf25e943d32e13800573a63020

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