Thomas, a library for working with Bayesian Networks.
Project description
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
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 Distribution
Built Distribution
Hashes for thomas_core-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8d16fcf883248159035a9024fea6cdebae9a48875f96f8dc46bb0e23d0887ac |
|
MD5 | 28cdee7f2b6a0d099f5aefe2bd649753 |
|
BLAKE2b-256 | 95d62d0cf12251388349e1b1b03e3da3f6444b9b8dfb6a0b7cd91d4a9aef77ee |