When looking for ways to improve your website, how do you decide which changes to make? And which changes to keep? This concise book shows you how to use Multiarmed Bandit algorithms to measure the real-world value of any modifications you make to your site. Author John Myles White shows you how this powerful class of algorithms can help you boost website traffic, convert visitors to customers, and increase many other measures of success.

This is the first developer-focused book on bandit algorithms, which were previously described only in research papers. You’ll quickly learn the benefits of several simple algorithms—including the epsilon-Greedy, Softmax, and Upper Confidence Bound (UCB) algorithms—by working through code examples written in Python, which you can easily adapt for deployment on your own website.

Learn the basics of A/B testing—and recognize when it’s better to use bandit algorithms

Develop a unit testing framework for debugging bandit algorithms

Get additional code examples written in Julia, Ruby, and JavaScript with supplemental online materials

John Myles White

John Myles White is a PhD candidate in Psychology at Princeton. He studies pattern recognition, decision-making, and economic behavior using behavioral methods and fMRI. He is particularly interested in anomalies of value assessment.

The book was good, I'm glad they went over different methods for handling the algorithms. I was left feeling that I didn't understand how to actually apply this in my real websites. Here's an example, most people will have a website that shows things on the homepage. It's a success if they visit the sales page and a failure if they don't. When we show them the homepage is there a method to consider it a failure until it succeeds? I didn't see any information for having a delayed success.

Don't let the small size of this book fool you: even though you could easily read it in an afternoon, it'll change your thinking about split testing in ways that could pay off big.

In under 80 pages White sketches out three alternatives to traditional A/B testing, a method for testing them, some considerations for the working programmer who has to write code for the real world, and some general principles for further explanation.

The choice of Python for code examples was also inspired. I know plenty of languages but Python isn't one of them; nevertheless, I was able to follow along without trouble.