Now, let's move to implement a simple approach that will use what we've been exploring. A bootstrapping bandit requires no math knowledge at all. It just requires us to sample from the data that we've encountered. Due to this simplicity, we can start from here. Let's start with the simplest test, as follows:
import rpm_bandit def given_a_single_treatment_test(): bandit = rpmbandit.RPMBandit(['A']) chosen_treatment = bandit.choose_treatment() assert chosen_treatment == 'A', 'Should choose the only available option.'
Okay, it's pretty standard at this point. The code that I've written to make this pass is also pretty standard now:
class RPMBandit: def __init__(self, treatments): self._treatments = treatments def choose_treatment(self): return self._treatments[0]
Next, let's say we have two treatments and neither of them have any data yet. Let's make sure to choose one. I'm totally fine with always choosing the first one:
def given_a_multiple_treatment_test...