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
Install from PyyPI TEST:
pip install -i https://test.pypi.org/simple/ --extra-index-url=https://pypi.python.org/simple thomas-core
pip install -i https://test.pypi.org/simple/ --extra-index-url=https://pypi.python.org/simple thomas-jupyter-widget
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.
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.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3de18c22c9cdc6d569c1276902608a995b524582618e89a0d5a3e5fa6f1a8a64 |
|
MD5 | 506d8ef1657e8a6008b823b905ac31f0 |
|
BLAKE2b-256 | de1e7f61352ed862fab2dd3bfcf6fdf508c718c0a24a8cea21d3a0fdbaf43466 |