offdev/bandit

An A/B/x testing algorithm written in PHP by implementing the solution to the multi armed bandit problem

1.0.0 2017-02-17 20:42 UTC

This package is auto-updated.

Last update: 2024-03-29 02:51:26 UTC


README

An A/B/x testing algorithm written in PHP by implementing the solution to the multi armed bandit problem

Latest Stable Version Minimum PHP Version Build Status License

Requirements

  • PHP >= 7.4
  • Composer

Installation

$ composer require offdev/bandit

General Usage

First, you need to set up a machine, and its possible levers. A lever might have already been pulled a few times, and some levers may also have rewarded the lucky person which pulled it, so adjust those numbers accordingly. Example:

use Offdev\Bandit\Lever;
use Offdev\Bandit\Machine;

$machine = new Machine(
    new Lever('first-lever', 123, 1),
    new Lever('second-lever', 108, 3),
    new Lever('third-lever', 115, 0),
);

Now you need a strategy to solve your problem. See this link for more information about strategies, and have a look at the example ones I have included in src/php/Strategies. Example:

use Offdev\Bandit\Strategies\EpsilonGreedy;

$strategy = new EpsilonGreedy();
$winningLever = $strategy->solve($machine);

It is as simple as that :)

TODO

Add more docs :)