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.1.9.dev202512161765476135-cp310-abi3-win_amd64.whl (3.1 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyagrum_nightly-2.3.1.9.dev202512161765476135-cp310-abi3-macosx_11_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyagrum_nightly-2.3.1.9.dev202512161765476135-cp310-abi3-macosx_10_15_x86_64.whl (4.9 MB view details)

Uploaded CPython 3.10+macOS 10.15+ x86-64

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512161765476135-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512161765476135-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e75628a69f835a381ba9d8c00099863e8318e63115811ce6d8e96eba1bbc23ff
MD5 2971191d8521c4116ead2efd7e968b47
BLAKE2b-256 aba4dc10a36d5dbbd0262c8adc858cec2710267146f020f2386d4052bde7a4c2

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512161765476135-cp310-abi3-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512161765476135-cp310-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 497183ace8cdeb74cabadf15024fa937a5180a8caaffa85a75a93459f59d7062
MD5 881dfec6386d7174732a1627b96160a3
BLAKE2b-256 00495c137f8b1aae7431febeb2fa069056e36f011334fa94ed55c886454ddbe0

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512161765476135-cp310-abi3-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512161765476135-cp310-abi3-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c262bbbeb6126fe1c9f63d50657ab18346fb85e9c64a206d8ba1eb64179e2503
MD5 a8ea6637492223d3911c347950ecaad3
BLAKE2b-256 8cb7d8fec91b4bc99ad500417a6dddf92474906960679fdd7924d8bb64b2762d

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512161765476135-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512161765476135-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 605aba9eb78cfc8f117b751c88283a5b2c68861b8c3f80819470056bb0e724c3
MD5 6a97dbb594d27cfe4e452aa0979b2296
BLAKE2b-256 f96b4a80c75241c64423973a5855b9cdbd64aa091b3377da6fa8904bbba7add1

See more details on using hashes here.

File details

Details for the file pyagrum_nightly-2.3.1.9.dev202512161765476135-cp310-abi3-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pyagrum_nightly-2.3.1.9.dev202512161765476135-cp310-abi3-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 4dd4b2e2a591376040f023333c0f1bb5257e238838b98480b31c52cb3c363584
MD5 e876e67011fe516be6b477e6f5ceb167
BLAKE2b-256 2e9751f25324a05dd0775b62fe1b8fdf74f6c91b063bdcb92e84823e0f04ad77

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