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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202606171781613575-cp310-abi3-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.3.2.9.dev202606171781613575-cp310-abi3-macosx_10_15_x86_64.whl (3.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.dev202606171781613575-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606171781613575-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 1f5b2032a3fc7e148c5314b14d2765de6dc7809088adffc5a3425f1f95c1b8ab
MD5 1145e61ea81738573b065b1f69463f00
BLAKE2b-256 a9f38ed462ab9aa23d588ba868954f81740d3df83e0d6e30d3ee4d84bc785e5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606171781613575-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 112b4712235740110dfa8e8dd29a02c780ce2da1bd305cf34e4157dd50093858
MD5 34d519d49e188028165af5b7d7000d05
BLAKE2b-256 d4f9c1bb9b8758cd6625bee7527862503a7d0a92272fb099e48814be4e4f36f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606171781613575-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1addb48b5b95750eb1c269b405a1ef68280fd968d65109806a439cd79447b1ce
MD5 e2aed1eee72fea97ee15a208277d8df9
BLAKE2b-256 e154550b1be323e5f14c755860e68e9139f4df2cc7a8fd8f238841c249088d82

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606171781613575-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8bc6207747d5b5ddb1ff15561566bc91339c4681ac9afa4fd82ff6555fcc687e
MD5 a01a1d8a755719f97e98929a4c3ca065
BLAKE2b-256 8512117574bc24075e631a64aab42383dea4d0d5236a36f0d96fbc135557a16f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202606171781613575-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 8ff6b7cc9d6108d5b10849381cbe52ff6a2d6576026097646f9c5d0975bb64b2
MD5 78b0e01c5b04cd20ce062e9e03163226
BLAKE2b-256 f28742bfbf46e7420a2ce3743f7d91454260b47fd3019bce4692682f4584b324

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