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.2.1.9.dev202508281756303741-cp310-abi3-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.2.1.9.dev202508281756303741-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.2.1.9.dev202508281756303741-cp310-abi3-macosx_10_15_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.10+macOS 10.15+ x86-64

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202508281756303741-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202508281756303741-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6f04227c35749ba39ea0d01de1652519f2a5c169fcdd89b9f53e6049a9070863
MD5 a525f88495987326c8e10275f67522a4
BLAKE2b-256 2a301849a60196b4b7a21b0ef6859a68e195c59fe986154b8bf3fb4d69a3b00a

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202508281756303741-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202508281756303741-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7907d3fd374c4d3608a25c488abe5aabda176905a169eaa58b7c961fd4982f52
MD5 aa327d78ffe5a3361abb563254cc0600
BLAKE2b-256 fece75d0f655a3224193294b08ecf1404d290456e16fd830682773afa5002626

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202508281756303741-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202508281756303741-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 771909c1bcad4d2fc8d9d83b55522315418d438712f724605c4da4b658dc168c
MD5 6e0eff668201bce17171df50b1f0da83
BLAKE2b-256 73d2d9df07582eacbb691ab4f4ecd9817afdcf8e2253d513f1d9de7095ba20e9

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202508281756303741-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202508281756303741-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dc7c408dd8fc4a70e521c458c8567d8b7eb062cacf532c44bf242f803b5cf32e
MD5 1a19fb98cb18ae85d077540722beaacb
BLAKE2b-256 44d68943dcc7eb01df06b27bdaba57657ea1eca5c19dc70dadbc3b6e1e4a70e5

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.2.1.9.dev202508281756303741-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.2.1.9.dev202508281756303741-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b6feed7a49a41a686a71e9d59d2aa2c62091697532d27ddfa24dd713b3b856d1
MD5 65d62824cba418b60b6883152dc3fbf9
BLAKE2b-256 4fd9eda2e9ddeaa5e09c0ff0ccd5b189d3f0329b5ca429fa5d2f5ec1c7ecad1d

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