Skip to content

WSHoekstra/maybee_backend

Repository files navigation

LinkedIn


Logo

Maybee backend

Restful API for non-contextual multi armed bandits.
· Report Bug · Request Feature

About The Project

Maybee is a restful API that implements non-contextual multi armed bandits. Its name is a play on the abbreviation MAB (multi armed bandit).

MABs are a class of algorithms in reinforcement learning that aim to quickly learn how to make good decisions when choosing between many different 'arms' (the equivalent to an 'experimental condition' in A/B/C testing) in order to optimize for some reward function.

MABs are a particularly attractive alternative to A/B/C testing when perfect certainty about which arm yields the highest avg rewards is less important than quickly making smart decisions, or when it's impractical or even impossible to keep a constant set of arms / experimental conditions.

Project Status

This project is in the 0.x stage. You should expect this project to change rapidly new versions to include breaking changes.

Built With

  • Python
  • Poetry
  • FastAPI
  • SQLModel

Getting Started

To get started, please explore the Makefile. Since this project is docker based, you'll need an active Docker machine to execute these commands.

Build the docker image

make build

Start the application in docker compose with a postgres database

make up

Usage

This API implements the core concepts of MABs:

  • environments (analogous to an experiment)
  • arms (analogous to an experimental condition)
  • actions (which represent the actions taken by the bandit)
  • observations (which represent the observations of a reward, or the lack thereof, as a result of the actions taken)

Roadmap

  • Create python backend
  • Implement epsilon-greedy, softmax, and UCB1 bandits
  • Add unit tests
  • Create python client library
  • Set up CRUD methods for all available entities.
  • Create React frontend

See the open issues for a full list of proposed features (and known issues).

License

Distributed under the GPL-3.0 license.

Contact

Walter Hoekstra (https://www.linkedin.com/in/walter-hoekstra-aa26b750/)

Project Link: https://github.com/WSHoekstra/maybee_backend

Acknowledgments

Special thanks to John Myles White (https://github.com/johnmyleswhite), the author of 'Bandit Algorithms for Website Optimization' for inspiring this project.

(back to top)

About

Multi-armed bandit API

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages