A package that implements the Thompson Sampling approach for a Multi-Armed Bandit.
Project description
tsampling
Thompson Sampling Multi-Armed Bandit for Python
A package that implements the Thompson Sampling approach for a Multi-Armed Bandit. The purpose of this project is to help people simply create and maintain Thompson Sampling experiments that have Bernoulli and Poisson distributions.
Usage
Setting up the experiment:
The following method will instantiate the experiment with the default priors.
from tsampling.bernoulli import BernoulliExperiment
experiment = BernoulliExperiment(arms=2)
You can also set your custom priors by using the Priors module:
from tsampling.bernoulli import BernoulliExperiment
from tsampling.priors import BetaPrior
pr = BetaPrior()
pr.add_one(mean=0.5, variance=0.2, effective_size=10, label="option1")
pr.add_one(mean=0.6, variance=0.3, effective_size=30, label="option2")
experiment = BernoulliExperiment(priors=pr)
Performing an action:
You can randomly choos which arm to "pull" in the multi-armed bandit:
experiment.choose_arm()
Updating reward:
You can update the different arms information by adding reward information:
rewards = [{"label":"option1", "reward":1}, {"label":"option2", "reward":0}]
experiment.add_rewards(rewards)
Plotting Posterior Distribution:
You can plot the posterior distribution
experiment.plot_posterior()
Installation
Pip
pip install tsampling
License
Free software: MIT license
Credits
This package was created with Cookiecutter_ and the audreyr/cookiecutter-pypackage
_ project template.
_Cookiecutter: https://github.com/audreyr/cookiecutter
audreyr/cookiecutter-pypackage
: https://github.com/audreyr/cookiecutter-pypackage
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 tsampling-0.0.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d7c5ddbaaa4af7dad311f5cb2f4aa80fce5665c5fa5a4f3c457936c095a584b4 |
|
MD5 | 60d99fc89dd581346dae134b0b9b0a88 |
|
BLAKE2b-256 | bc9c815b55f46330763ea71f7922ef329e48d93b8b975377eafd69cc0a985a51 |