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

Uploaded CPython 3.10+Windows x86-64

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607071781613575-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 7ffa1b831ac333445da8a3b7a72e2f28335e35de5a060054d5bc91f53d065d53
MD5 bd2a5605fdb138345dada49082ac05f7
BLAKE2b-256 bbfb5b941e31dc73a190b1a03c2aa78068615f35a7ac0a4e6fbe33ef494f83f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607071781613575-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 52d56845e40d0f2a090f21390a12279879d5eb200cc263d3ae95268d2e0f02c3
MD5 d6bc6f1086f1960b376427e06587097b
BLAKE2b-256 b13ce6194ed8c2480bdaba039a37b9e94a5ff170536eee3d7d18fe7c4b99977a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607071781613575-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5f40157f496e935af3b82f92d56d0255802a399d4b9b3abfde4dcc2a92800e7f
MD5 6e2474c271e25d7a0354a351e464981b
BLAKE2b-256 55063f24aba1544e71d0ac4c2fb3de8b7b93b2ab5eb96fb8e59d367f59657ea3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607071781613575-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a534ec62d6165de6b80d15bdc4d787f8ebe239587498928cb86a291b0fd13a1d
MD5 51628e10d7fdb110467bca20e6cd457f
BLAKE2b-256 5cb1abe8a9d7034af511003b4e2603508e4f6cb21025aa033c7d2270cd8d1b50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.2.9.dev202607071781613575-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 8ef092ec1387554c64425fc9211ccf878db9035c80381a494014c117a357b81a
MD5 e15ed1888ed0687aab3935d794aea436
BLAKE2b-256 dea6682c7f07b5618d1559bfcd628377c12eeeebaaa5a31989ec747c392905eb

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