bitl

A module to benchmark bandit algorithms


License
BSD-3-Clause
Install
pip install bitl==0.0.1

Documentation

Bandits in the Loop

An experimental simulator for multi-armed bandits. The idea is to help testing and benchmarking of policies. Either generate a simulated dataset and evaluate online, or load a real dataset and evaluate offline.

Project directory structure

  • environment: defines global parameters, features, feedback graphs etc.
  • policies: examples policies for different classes of bandits
  • signals: generate/load/save signals with environment specifications
  • evaluation: setup and run the evaluation loop
  • utils: helper functions to generate plots, output results tables (in HTML or TeX)

Installation

Dependencies

  • Python3
  • NumPy
  • NetworkX for random graph generation
git clone https://github.com/tritas/bitl.git

python setup.py

Usage

Synthetic dataset creation is showcased in the examples folder.

Todos

  • Annotate algorithms with author information and proper defaults
  • Run policy code from C/C++, Matlab, Java, etc.
  • Export to iPython
  • Test on problems such as: Graphs, Learning to Rank, Discovery
  • Offline evaluation using counterfactual information
  • Generalize to more reward distributions

Any feedback is appreciated!

Contributors

  • Odalric-Ambrym Maillard : non-stationary modes
  • Olivier Cappé, Aurélien Garivier (pymaBandits): Kullback-Leibler utility functions
  • Nithin Holla : some policies