Skip to main content

Thomas, a library for working with Bayesian Networks.

Project description

Coverage Status Build Status badge

Thomas

Very simple (almost naive ;-) bayesian network implementation.

Contains examples (thomas.core.examples) from the book "Probabilistic Graphical Models: Principles and Techniques" from Koller and Friedman (PGM Stanford) and from the lecture by Adnan Darwiche on YouTube: * 6a. Inference by Variable Elimination I (Chapter 6). * 6b. Inference by Variable Elimination II (Chapter 6).

Installation

Regular installation

To install the latest version from PyPI:

pip install thomas-core

To install the latest version from source:

pip install git+https://github.com/mellesies/thomas-core

Development installation

To do a development install:

git clone https://github.com/mellesies/thomas-core
cd thomas-core
pip install -e .

Additional packages

If you're using JupyterLab, I'd recommend also installing the Widget that can display Bayesian Networks. See the repository for details.

pip install thomas-jupyter-widget

Docker

A Docker image is available should you just want to try things out.The following command will start a JupyterLab server, listening on http://localhost:8888.

docker run --rm -it -p 8888:8888 mellesies/thomas-core

Usage

To get started with querying a network, try the following:

from thomas.core import examples

# Load an example network
Gs = examples.get_student_network()

# This should output the prior probability of random variable 'S' (SAT score).
print(Gs.P('S'))
print()

# Expected output:
# P(S)
# S
# s0    0.725
# s1    0.275
# dtype: float64

# Query for the conditional probability of S given the student is intelligent.
print(Gs.P('S|I=i1'))

# Expected output:
# P(S)
# S
# s0    0.2
# s1    0.8
# dtype: float64

Alternatively, you can have a go at the example notebooks through Binder:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

thomas-core-0.1.2.tar.gz (95.2 kB view details)

Uploaded Source

Built Distribution

thomas_core-0.1.2-py3-none-any.whl (102.0 kB view details)

Uploaded Python 3

File details

Details for the file thomas-core-0.1.2.tar.gz.

File metadata

  • Download URL: thomas-core-0.1.2.tar.gz
  • Upload date:
  • Size: 95.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.6

File hashes

Hashes for thomas-core-0.1.2.tar.gz
Algorithm Hash digest
SHA256 2432bc8938add2323248544786aacb03275368b14ce8dbef53669c9c03feed46
MD5 ea7865518e06660fb04e162a16fdb06c
BLAKE2b-256 e22958d513168ec79772b1b4508198c7a37302ce8d5c231250c506e528e1fe93

See more details on using hashes here.

File details

Details for the file thomas_core-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: thomas_core-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 102.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.6

File hashes

Hashes for thomas_core-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f8d16fcf883248159035a9024fea6cdebae9a48875f96f8dc46bb0e23d0887ac
MD5 28cdee7f2b6a0d099f5aefe2bd649753
BLAKE2b-256 95d62d0cf12251388349e1b1b03e3da3f6444b9b8dfb6a0b7cd91d4a9aef77ee

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page