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

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.2.9.dev202607091781613575-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.dev202607091781613575-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.dev202607091781613575-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607091781613575-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 19fc03e72c27382ba4b49019c34344c29f188b4c9b9e5fc009e4233a5ee4f047
MD5 27842733b30f3bd18ecd3714fea43937
BLAKE2b-256 9e0424c60f7472e9b253aa1b8061d89c11f5c0d875630318bc1b4ac88e3eb0f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607091781613575-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 036924c6848bdce873a28451a4dcc830d8f261c079c9910b0324267bbd920f91
MD5 54c054d923aecdfc530da9b375f53071
BLAKE2b-256 eda4db4e90c74b18905dda8402240d6d63b851b0fb772cd491f18cb5305f6f0d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607091781613575-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 50c3bfcf00b9948b5d413f89fd24cac028743a9e7a8f8ff12c47ca2a621cfc4c
MD5 3101e3b54d5c0cd3478a2f9c865994af
BLAKE2b-256 64e0728ec3103d86f90afe3ff1d114425078e802d66ecc22c1965a5e0af3879b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607091781613575-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 31598fdb239991ced26896d185238a02bd645fdf5e2e5c5f90a396748bb5e12d
MD5 60ca81a3f3b16297a70559db53a5f308
BLAKE2b-256 b1066f7f47cebd3f5f0940fb8f8c553d59d1a4dbfbdc172bd2d4580b73758e3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607091781613575-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 3bbf7b70acdffaa3f1b905d7f968f6a81b3fb306082d4fc27d405fc27258dc63
MD5 57d20a8243597e3b848d785cd6adfbe7
BLAKE2b-256 d72ebca43f104258563c8018b1652d5f0be6bf49d86fbb9b74dc3ca630a851f2

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