{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Bayesian Statistics Seminar\n", "\n", "Copyright 2017 Allen Downey\n", "\n", "MIT License: https://opensource.org/licenses/MIT" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from __future__ import print_function, division\n", "\n", "%matplotlib inline\n", "\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "import numpy as np\n", "\n", "from thinkbayes2 import Suite\n", "import thinkplot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bayesian bandits\n", "\n", "\n", "Here's a definition for `Bandit`, which extends `Suite` and defines a likelihood function that computes the probability of the data (win or lose) for a given value of `x` (the probability of win).\n", "\n", "Note that `hypo` is in the range 0 to 100." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "class Bandit(Suite):\n", " \n", " def Likelihood(self, data, hypo):\n", " \"\"\" \n", " hypo is the prob of win (0-100)\n", " data is a string, either 'W' or 'L'\n", " \"\"\"\n", " x = hypo / 100\n", " if data == 'W':\n", " return x\n", " else:\n", " return 1-x" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We'll start with a uniform distribution from 0 to 100." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nMeViAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bandit = Bandit(range(101))\n", "thinkplot.Pdf(bandit)\n", "thinkplot.Config(xlabel='x', ylabel='Probability')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can update with a single loss:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bandit.Update('L')\n", "thinkplot.Pdf(bandit)\n", "thinkplot.Config(xlabel='x', ylabel='Probability')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Another loss:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bandit.Update('L')\n", "thinkplot.Pdf(bandit)\n", "thinkplot.Config(xlabel='x', ylabel='Probability')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And a win:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bandit.Update('W')\n", "thinkplot.Pdf(bandit)\n", "thinkplot.Config(xlabel='x', ylabel='Probability')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Starting over, here's what it looks like after 1 win and 9 losses." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "10" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n/w+y6Slh3TwqjgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bandit = Bandit(range(101))\n", "\n", "for outcome in 'LLWLLLLLLL':\n", " bandit.Update(outcome)\n", "\n", "thinkplot.Pdf(bandit)\n", "thinkplot.Config(xlabel='x', ylabel='Probability')\n", "bandit.MaximumLikelihood()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The posterior mean is about 17%" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "16.68194469884906" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bandit.Mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The most likely value is the observed proportion 1/10" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "10" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bandit.MaximumLikelihood()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The posterior credible interval has a 90% chance of containing the true value (provided that the prior distribution truly represents our background knowledge)." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(3, 36)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bandit.CredibleInterval(90)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bayesian A/B testing" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now suppose we have several bandits and we want to decide which one to play." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As an example, suppose we have 4 machines with these probabilities:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "actual_probs = [10, 20, 30, 40]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following function simulates playing one machine once." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from random import random\n", "from collections import Counter\n", "\n", "counter = Counter()\n", "\n", "def flip(p):\n", " \"\"\"Returns True with probablity `p`, False otherwise.\n", " \n", " p: float probability\n", " \n", " returns: boolean\n", " \"\"\"\n", " return random() < p\n", "\n", "def play(i):\n", " \"\"\"Plays the `i`th machine and returns the outcome.\n", " \n", " i: integer index into `actual_probs`\n", " \"\"\"\n", " counter[i] += 1\n", " p = actual_probs[i] / 100\n", " if flip(p):\n", " return 'W'\n", " else:\n", " return 'L'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's a test, playing Machine 3 twenty times:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "L W W L L L W W W W W L L L W L W L L L " ] } ], "source": [ "for i in range(20):\n", " result = play(3)\n", " print(result, end=' ')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise 1** Create a `Bandit` object to represent your beliefs about Machine 3. Write a loop that plays Machine 3 20 times and updates your beliefs based on the outcome. Plot the posterior distribution of `x` and the 90% credible interval. Does the CI contain the actual probability for Machine 3, which is 30%?" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Solution goes here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## STOP HERE." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The strategy\n", "\n", "Now I'll make 4 `Bandit` objects to represent our beliefs about the 4 machines." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true }, "outputs": [], "source": [ "prior = range(101)\n", "beliefs = [Bandit(prior) for i in range(4)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The core of the Bayesian Bandits Strategy is this process for choosing which machine to play:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def choose(beliefs):\n", " \"\"\"Chooses a machine in proportion to its probability of superiority.\n", " \n", " beliefs: list of Bandit objects.\n", " \n", " returns: integer index of the chosen machine.\n", " \"\"\"\n", " ps = [b.Random() for b in beliefs]\n", " return np.argmax(ps)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It chooses a random value from each posterior and returns the index of the machine with this highest generated value of `x`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's an example." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "choose(beliefs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This function updates our beliefs about one of the machines based on one outcome." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def update(beliefs, i, outcome):\n", " \"\"\"Updates Machine `i` based on `outcome`.\n", " \n", " beliefs: list of Bandit objects.\n", " i: index integet into beliefs\n", " outcome: string, either 'W' or 'L'\n", " \"\"\"\n", " beliefs[i].Update(outcome)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise 2** Fill in this function to use `choose` to pick a machine, `play` to play it, and `update` to update our beliefs about the chosen machine." ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def choose_play_update(beliefs, verbose=False):\n", " \"\"\"Chooses a machine, plays it, and updates `beliefs`.\n", " \n", " If `verbose`, print the index of the chosen machine, `i`,\n", " and the `outcome`.\n", " \n", " beliefs: list of Bandit objects.\n", " verbose: boolean\n", " \"\"\"\n", " pass" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Solution goes here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Test your method here." ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [], "source": [ "counter = Counter()\n", "choose_play_update(beliefs, verbose=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Testing the bandit strategy\n", "\n", "Start with a fresh batch of `Bandit` objects." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": true }, "outputs": [], "source": [ "prior = range(101)\n", "beliefs = [Bandit(prior) for i in range(4)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And reset the counter that keeps track of how many times we play each machine." ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": true }, "outputs": [], "source": [ "counter = Counter()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This function displays the four distributions:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [], "source": [ "options = dict(yticklabels='invisible')\n", "\n", "def plot(beliefs):\n", " thinkplot.preplot(rows=2, cols=2)\n", " for i, b in enumerate(beliefs):\n", " thinkplot.subplot(i+1)\n", " thinkplot.Pdf(b, label=i)\n", " thinkplot.config(**options)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkkAAAJKCAYAAAA4FNGaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGhVJREFUeJzt3XuI5Xd9//HXW1dd15hL/4iaaHZTLzUGqoSfaPWPHqpY\nbWyLVsRQg23MH6K0oYUS06pZ8AL+UYrYeCleKGIVWtu6Aa8hHFGwVI26rTEmjdLEiKuhGrXxwq6f\n3x8zppv43t0zmzN7LvN4wMDMyXez78/O7JvnnHPmbI0xAgDAvT1g0QMAACwjkQQA0BBJAAANkQQA\n0BBJAAANkQQA0Ng164VV5bUCYAcaY9SiZ5gHOwx2nvu7v7Z0T9IYYy3err766oXP4Czre5Z1OccY\n69cUi/7z9PXlLKvwti5nmQcPtwEANEQSAEBjR0bSZDJZ9Ahz4yzLZ13OwXJap68vZ1lO63SW+6tm\nfdyuqsa8HuMDVkNVZazRE7ftMNg55rG/duQ9STAP+/btS1Wtxdu+ffsW/ccJnGLrssO2c3+5JwlO\n0uZ3KYseYy6OdRb3JMH6Wpcdtp37yz1JAAANkQQA0BBJAAANkQQA0BBJsKa+973v5QUveEFOO+20\nnH/++fnABz6w6JEAZnLNNdfkqU99anbv3p3LLrtsYXPM/A/cAqvlla98ZXbv3p3vfve7ueGGG3Lx\nxRfnKU95Si644IJFjwZwXOeee25e+9rX5uMf/3h+/OMfL2wOLwEAJ2mZf3z27rvvzllnnZUbb7wx\nj33sY5MkL3vZy3LuuefmTW960y9d7yUAYOdZ5h32C6997Wtzxx135D3vec8xr9nO/eWeJNgmf3DF\nO+b2//rQW16xpetvvvnmPOhBD7onkJLkyU9+cj71qU/NbSZgfV3+rs/P9f/3rsv/31z/f6eK5yTB\nGvrRj36U008//V63nX766fnhD3+4oIkAVo9IgjV02mmn5Qc/+MG9brvrrrvy8Ic/fEETAaweD7fB\nNtnqQ2Tz9IQnPCGHDx/Orbfees9Dbl/+8pdz4YUXLmwmYHWs6sNj8+aeJFhDe/bsyQtf+MK87nWv\ny913353PfOYzufbaa3PppZcuejSAEzpy5Eh+8pOf5MiRIzl8+HB++tOf5siRI6d8DpEEa+qaa67J\n3XffnbPPPjsvfelL8453vMOP/wMr4Q1veEP27NmTN7/5zXn/+9+fPXv25I1vfOMpn8NLAMBJWoUf\nn52VlwCAnWdddth27i/3JAEANEQSAEBDJAEANEQSAEBDJAEANEQSAEDDK27DSdq7d2+q1uKn47N3\n795FjwCcYuuyw7Zzf3mdJOCYvE4SsKq8ThIAwDYRSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQ\nSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAA\nDZEEANDYtZWL9+/ff8/7k8kkk8lkzuMAizSdTjOdThc9xraxw2B9bcf+qjHGbBdWjVmvBdZDVWWM\nUYueYx7sMNhZ5rG/PNwGANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAA\nDZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEE\nANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQ\nSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAA\njV1buXj//v33vD+ZTDKZTOY8DrBI0+k00+l00WNsGzsM1td27K8aY8x2YdWY9VpgPVRVxhi16Dnm\nwQ6DnWUe+8vDbQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAA\nDZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANDYtZWL/+CK\nd2zXHADb7vJ3fX7RIwArxD1JAAANkQQA0KgxxmwXVo1ZrwXWQ1VljFGLnmMe7DDYWeaxv9yTBADQ\nEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkA\nAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQ2LWVi/fv33/P+5PJJJPJ\nZM7jAIs0nU4znU4XPca2scNgfW3H/qoxxmwXVo1ZrwXWQ1VljFGLnmMe7DDYWeaxvzzcBgDQEEkA\nAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2R\nBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQ\nEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkA\nAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQ2LWVi/fv33/P+5PJJJPJ\nZM7jAIs0nU4znU4XPca2scNgfW3H/qoxxmwXVo1ZrwXWQ1VljFGLnmMe7DDYWeaxvzzcBgDQEEkA\nAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2R\nBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQ\nEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkA\nAA2RBADQEEkAAA2RBADQEEkAAI0dGUnT6XTRI8yNsyyfdTkHy2mdvr6cZTmt01nuL5G04pxl+azL\nOVhO6/T15SzLaZ3Ocn/tyEgCADgRkQQA0KgxxmwXVs12IbBWxhi16BnmwQ6Dnef+7q+ZIwkAYCfx\ncBsAQEMkAQA0RBIAQGOmSKqq51bVTVV1c1Vdud1DzUtVPbqqrq+qr1TVf1TVn27eflZVfaKqvlZV\nH6+qMxY966yq6gFVdUNVHdj8eCXPUlVnVNU/VtVXNz8/T1vhs/xZVf1nVR2sqvdX1YNX5SxV9e6q\nOlRVB4+67ZizV9VVVXXL5uftOYuZemtWdX8l67fD7K/lY38d3wkjqaoekORvk/x2kguTXFJVT9z6\ncRbicJI/H2NcmOQ3krxqc/ZXJ7lujPFrSa5PctUCZ9yqK5LceNTHq3qWtyT5yBjjgiRPTnJTVvAs\nVXVOkj9JctEY49eT7EpySVbnLO/Nxt/to7WzV9WTkrw4yQVJnpfkbVW11D/5tuL7K1m/HWZ/LRH7\na4b9NcY47luSpyf56FEfvzrJlSf6dcv4luRfkzw7G1/Qj9i87ZFJblr0bDPO/+gkn0wySXJg87aV\nO0uS05Pc2ty+imc5J8l/JzkrGwvmwKp9jSXZm+TgiT4P9/27n+SjSZ626PlPcLa12V+b86/sDrO/\nlu/N/jrx/prl4bZzk9x+1Mff3LxtpVTVviRPSfJv2fgDPJQkY4xvJzl7cZNtyd8k+YskR79uwyqe\n5fwkd1bVezfvev+7qtqTFTzLGONbSf46yW1J7khy1xjjuqzgWY5y9jFmv+8uuCPLvwvWYn8la7HD\n7K8lY3+deBfsiCduV9VpSf4pyRVjjB/l3n9J03y8dKrq4iSHxhhfSnK8uwiX/izZ+I7loiTXjDEu\nSvK/2aj8Vfy8nJnk97Px3cw5SR5WVX+YFTzLcazy7Gth1XeY/bWc7K8TmyWS7khy3lEfP3rztpVQ\nVbuysVzeN8b48ObNh6rqEZv//ZFJvrOo+bbgmUl+r6q+nuQDSX6rqt6X5NsreJZvJrl9jPH5zY8/\nlI2ls4qfl2cn+foY43/GGEeS/EuSZ2Q1z/ILx5r9jiSPOeq6VdgFK72/krXZYfbXcrK/TmCWSPpc\nksdV1d6qenCSl2TjcctV8Z4kN44x3nLUbQeS/NHm+y9L8uH7/qJlM8b4yzHGeWOMX83G5+D6Mcal\nSa7N6p3lUJLbq+oJmzc9K8lXsoKfl2zcTf30qtq9+STAZ2XjiamrdJbKvb+7P9bsB5K8ZPOnX85P\n8rgk/36qhjxJq76/kjXYYfbX0rK/TmTGJ0Y9N8nXktyS5NWLfqLWFp7Q9cwkR5J8KckXk9yweZZf\nSXLd5pk+keTMRc+6xXP9Zv7viY8reZZs/ETI5zY/N/+c5IwVPsvVSb6a5GCSv0/yoFU5S5J/SPKt\nJD/NxsL842w8ibOdPRs/KfJfm+d9zqLnn/GMK7m/Nmdfux1mfy3Xm/11/Df/dhsAQGNHPHEbAGCr\nRBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIA\nQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMk\nAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0ds16YVWN7RwE\nWE5jjFr0DPNgh8HOc3/315buSRpjrMXb1VdfvfAZnGV9z7Iu5xhj/Zpi0X+evr6cZRXe1uUs8+Dh\nNgCAhkgCAGjsyEiaTCaLHmFunGX5rMs5WE7r9PXlLMtpnc5yf9Wsj9tV1ZjXY3zAaqiqjDV64rYd\nBjvHPPbXjrwnCeZh3759qaq1eNu3b9+i/ziBU2xddth27i/3JMFJ2vwuZdFjzMWxzuKeJFhf67LD\ntnN/uScJAKAhkgAAGiIJAKAhkgAAGiIJ1tDPfvazXH755dm3b1/OOOOMXHTRRfnYxz626LEAZnbp\npZfmUY96VM4888w88YlPzLvf/e5TPoNIgjV0+PDhnHfeefn0pz+du+66K69//evz4he/OLfddtui\nRwOYyVVXXZVvfOMb+f73v58DBw7kNa95Tb74xS+e0hlEEqyhPXv25HWve10e85jHJEkuvvjinH/+\n+fnCF76w4MkAZvOkJz0pu3fvTrLxj1NXVW699dZTOoNIgh3g0KFDueWWW3LhhRcuehSAmb3qVa/K\nwx72sFxwwQU555xz8ju/8zun9Pf3YpJwkk70Qmx/de1Nc/u93vi7TzzpX3v48OE873nPy+Mf//i8\n7W1va6/xYpKw8xxvh11383fm+ns9+wlnn/SvHWPks5/9bKbTaa688so88IEPvNd/92KSwEkZY+Sl\nL31pHvKQh+Stb33roscB2LKqyjOe8Yzcfvvtefvb335Kf+9dp/R3A06pl7/85bnzzjvzkY985Je+\n+wJYJYcPHz7lz0nycBucpGX/d49e8YpX5ODBg7nuuuuyZ8+e417r4TbYeZZ5h333u9/N9ddfn+c/\n//l56EMfmk9+8pN50YtelA9+8IO5+OKL73Xtdu4vkQQnaZkXzG233ZZ9+/Zl9+7d99yDVFV55zvf\nmUsuueSXrhdJsPMs8w67884786IXvSgHDx7Mz3/+8+zduzdXXHFFLrvssl+6ViTBElrmBbNVIgl2\nnnXZYZ64DQBwiokkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaPhnSeAk7d27N1Vr8RJC2bt376JH\nAE6xddlh27m/vJgkcExeTBJYVV5MEgBgm4gkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICG\nSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAIDGrq1c\nvH///nven0wmmUwmcx4HWKTpdJrpdLroMbaNHQbrazv2V40xZruwasx6LbAeqipjjFr0HPNgh8HO\nMo/95eE2AICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIA\naIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgk\nAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICG\nSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAIDGrq1c\nvH///nven0wmmUwmcx4HWKTpdJrpdLroMbaNHQbrazv2V40xZruwasx6LbAeqipjjFr0HPNgh8HO\nMo/95eE2AICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIA\naIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaOzaysV/de1N2zUH\nwLa77ubvLHoEYIW4JwkAoCGSAAAaNcaY7cKqMeu1wHqoqowxatFzzIMdBjvLPPaXe5IAABoiCQCg\nIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIA\nABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgsWsrF+/fv/+e9yeTSSaTyZzHARZpOp1m\nOp0ueoxtY4fB+tqO/VVjjNkurBqzXgush6rKGKMWPcc82GGws8xjf3m4DQCgIZIAABoiCQCgIZIA\nABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoi\nCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCg\nIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIA\nABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgsWsrF+/fv/+e9yeTSSaTyZzHARZpOp1m\nOp0ueoxtY4fB+tqO/VVjjNkurBqzXgush6rKGKMWPcc82GGws8xjf3m4DQCgIZIAABoiCQCgIZIA\nABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoi\nCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCg\nIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIAABoiCQCgIZIA\nABoiCQCgIZIAABoiCQCgsSMjaTqdLnqEuXGW5bMu52A5rdPXl7Msp3U6y/0lklacsyyfdTkHy2md\nvr6cZTmt01nurx0ZSQAAJyKSAAAaNcaY7cKq2S4E1soYoxY9wzzYYbDz3N/9NXMkAQDsJB5uAwBo\niCQAgMZMkVRVz62qm6rq5qq6cruHmpeqenRVXV9VX6mq/6iqP928/ayq+kRVfa2qPl5VZyx61llV\n1QOq6oaqOrD58UqeparOqKp/rKqvbn5+nrbCZ/mzqvrPqjpYVe+vqgevylmq6t1VdaiqDh512zFn\nr6qrquqWzc/bcxYz9das6v5K1m+H2V/Lx/46vhNGUlU9IMnfJvntJBcmuaSqnrj14yzE4SR/Psa4\nMMlvJHnV5uyvTnLdGOPXklyf5KoFzrhVVyS58aiPV/Usb0nykTHGBUmenOSmrOBZquqcJH+S5KIx\nxq8n2ZXkkqzOWd6bjb/bR2tnr6onJXlxkguSPC/J26pqqZ/UveL7K1m/HWZ/LRH7a4b9NcY47luS\npyf56FEfvzrJlSf6dcv4luRfkzw7G1/Qj9i87ZFJblr0bDPO/+gkn0wySXJg87aVO0uS05Pc2ty+\nimc5J8l/JzkrGwvmwKp9jSXZm+TgiT4P9/27n+SjSZ626PlPcLa12V+b86/sDrO/lu/N/jrx/prl\n4bZzk9x+1Mff3LxtpVTVviRPSfJv2fgDPJQkY4xvJzl7cZNtyd8k+YskR/9I4iqe5fwkd1bVezfv\nev+7qtqTFTzLGONbSf46yW1J7khy1xjjuqzgWY5y9jFmv+8uuCPLvwvWYn8la7HD7K8lY3+deBfs\niCduV9VpSf4pyRVjjB/l3n9J03y8dKrq4iSHxhhfSnK8uwiX/izZ+I7loiTXjDEuSvK/2aj8Vfy8\nnJnk97Px3cw5SR5WVX+YFTzLcazy7Gth1XeY/bWc7K8TmyWS7khy3lEfP3rztpVQVbuysVzeN8b4\n8ObNh6rqEZv//ZFJvrOo+bbgmUl+r6q+nuQDSX6rqt6X5NsreJZvJrl9jPH5zY8/lI2ls4qfl2cn\n+foY43/GGEeS/EuSZ2Q1z/ILx5r9jiSPOeq6VdgFK72/krXZYfbXcrK/TmCWSPpcksdV1d6qenCS\nl2TjcctV8Z4kN44x3nLUbQeS/NHm+y9L8uH7/qJlM8b4yzHGeWOMX83G5+D6McalSa7N6p3lUJLb\nq+oJmzc9K8lXsoKfl2zcTf30qtq9+STAZ2XjiamrdJbKvb+7P9bsB5K8ZPOnX85P8rgk/36qhjxJ\nq76/kjXYYfbX0rK/TmTGJ0Y9N8nXktyS5NWLfqLWFp7Q9cwkR5J8KckXk9yweZZfSXLd5pk+keTM\nRc+6xXP9Zv7viY8reZZs/ETI5zY/N/+c5IwVPsvVSb6a5GCSv0/yoFU5S5J/SPKtJD/NxsL842w8\nibOdPRs/KfJfm+d9zqLnn/GMK7m/Nmdfux1mfy3Xm/11/Df/LAkAQGNHPHEbAGCrRBIAQEMkAQA0\nRBIAQEMkAQA0RBIAQEMkAQA0RBIAQOP/A2/I45wSJXKPAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot(beliefs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can play a few times and see how `beliefs` gets updated:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkkAAAJKCAYAAAA4FNGaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGhVJREFUeJzt3XuI5Xd9//HXW1dd15hL/4iaaHZTLzUGqoSfaPWPHqpY\nbWyLVsRQg23MH6K0oYUS06pZ8AL+UYrYeCleKGIVWtu6Aa8hHFGwVI26rTEmjdLEiKuhGrXxwq6f\n3x8zppv43t0zmzN7LvN4wMDMyXez78/O7JvnnHPmbI0xAgDAvT1g0QMAACwjkQQA0BBJAAANkQQA\n0BBJAAANkQQA0Ng164VV5bUCYAcaY9SiZ5gHOwx2nvu7v7Z0T9IYYy3err766oXP4Czre5Z1OccY\n69cUi/7z9PXlLKvwti5nmQcPtwEANEQSAEBjR0bSZDJZ9Ahz4yzLZ13OwXJap68vZ1lO63SW+6tm\nfdyuqsa8HuMDVkNVZazRE7ftMNg55rG/duQ9STAP+/btS1Wtxdu+ffsW/ccJnGLrssO2c3+5JwlO\n0uZ3KYseYy6OdRb3JMH6Wpcdtp37yz1JAAANkQQA0BBJAAANkQQA0BBJsKa+973v5QUveEFOO+20\nnH/++fnABz6w6JEAZnLNNdfkqU99anbv3p3LLrtsYXPM/A/cAqvlla98ZXbv3p3vfve7ueGGG3Lx\nxRfnKU95Si644IJFjwZwXOeee25e+9rX5uMf/3h+/OMfL2wOLwEAJ2mZf3z27rvvzllnnZUbb7wx\nj33sY5MkL3vZy3LuuefmTW960y9d7yUAYOdZ5h32C6997Wtzxx135D3vec8xr9nO/eWeJNgmf3DF\nO+b2//rQW16xpetvvvnmPOhBD7onkJLkyU9+cj71qU/NbSZgfV3+rs/P9f/3rsv/31z/f6eK5yTB\nGvrRj36U008//V63nX766fnhD3+4oIkAVo9IgjV02mmn5Qc/+MG9brvrrrvy8Ic/fEETAaweD7fB\nNtnqQ2Tz9IQnPCGHDx/Orbfees9Dbl/+8pdz4YUXLmwmYHWs6sNj8+aeJFhDe/bsyQtf+MK87nWv\ny913353PfOYzufbaa3PppZcuejSAEzpy5Eh+8pOf5MiRIzl8+HB++tOf5siRI6d8DpEEa+qaa67J\n3XffnbPPPjsvfelL8453vMOP/wMr4Q1veEP27NmTN7/5zXn/+9+fPXv25I1vfOMpn8NLAMBJWoUf\nn52VlwCAnWdddth27i/3JAEANEQSAEBDJAEANEQSAEBDJAEANEQSAEDDK27DSdq7d2+q1uKn47N3\n795FjwCcYuuyw7Zzf3mdJOCYvE4SsKq8ThIAwDYRSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQ\nSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAA\nDZEEANDYtZWL9+/ff8/7k8kkk8lkzuMAizSdTjOdThc9xraxw2B9bcf+qjHGbBdWjVmvBdZDVWWM\nUYueYx7sMNhZ5rG/PNwGANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAA\nDZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEE\nANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQ\nSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAA\njV1buXj//v33vD+ZTDKZTOY8DrBI0+k00+l00WNsGzsM1td27K8aY8x2YdWY9VpgPVRVxhi16Dnm\nwQ6DnWUe+8vDbQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAA\nDZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANDYtZWL/+CK\nd2zXHADb7vJ3fX7RIwArxD1JAAANkQQA0KgxxmwXVo1ZrwXWQ1VljFGLnmMe7DDYWeaxv9yTBADQ\nEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkA\nAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQ2LWVi/fv33/P+5PJJJPJ\nZM7jAIs0nU4znU4XPca2scNgfW3H/qoxxmwXVo1ZrwXWQ1VljFGLnmMe7DDYWeaxvzzcBgDQEEkA\nAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2R\nBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQ\nEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkA\nAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQ2LWVi/fv33/P+5PJJJPJ\nZM7jAIs0nU4znU4XPca2scNgfW3H/qoxxmwXVo1ZrwXWQ1VljFGLnmMe7DDYWeaxvzzcBgDQEEkA\nAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2R\nBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQ\nEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkA\nAA2RBADQEEkAAA2RBADQEEkAAI0dGUnT6XTRI8yNsyyfdTkHy2mdvr6cZTmt01nuL5G04pxl+azL\nOVhO6/T15SzLaZ3Ocn/tyEgCADgRkQQA0KgxxmwXVs12IbBWxhi16BnmwQ6Dnef+7q+ZIwkAYCfx\ncBsAQEMkAQA0RBIAQGOmSKqq51bVTVV1c1Vdud1DzUtVPbqqrq+qr1TVf1TVn27eflZVfaKqvlZV\nH6+qMxY966yq6gFVdUNVHdj8eCXPUlVnVNU/VtVXNz8/T1vhs/xZVf1nVR2sqvdX1YNX5SxV9e6q\nOlRVB4+67ZizV9VVVXXL5uftOYuZemtWdX8l67fD7K/lY38d3wkjqaoekORvk/x2kguTXFJVT9z6\ncRbicJI/H2NcmOQ3krxqc/ZXJ7lujPFrSa5PctUCZ9yqK5LceNTHq3qWtyT5yBjjgiRPTnJTVvAs\nVXVOkj9JctEY49eT7EpySVbnLO/Nxt/to7WzV9WTkrw4yQVJnpfkbVW11D/5tuL7K1m/HWZ/LRH7\na4b9NcY47luSpyf56FEfvzrJlSf6dcv4luRfkzw7G1/Qj9i87ZFJblr0bDPO/+gkn0wySXJg87aV\nO0uS05Pc2ty+imc5J8l/JzkrGwvmwKp9jSXZm+TgiT4P9/27n+SjSZ626PlPcLa12V+b86/sDrO/\nlu/N/jrx/prl4bZzk9x+1Mff3LxtpVTVviRPSfJv2fgDPJQkY4xvJzl7cZNtyd8k+YskR79uwyqe\n5fwkd1bVezfvev+7qtqTFTzLGONbSf46yW1J7khy1xjjuqzgWY5y9jFmv+8uuCPLvwvWYn8la7HD\n7K8lY3+deBfsiCduV9VpSf4pyRVjjB/l3n9J03y8dKrq4iSHxhhfSnK8uwiX/izZ+I7loiTXjDEu\nSvK/2aj8Vfy8nJnk97Px3cw5SR5WVX+YFTzLcazy7Gth1XeY/bWc7K8TmyWS7khy3lEfP3rztpVQ\nVbuysVzeN8b48ObNh6rqEZv//ZFJvrOo+bbgmUl+r6q+nuQDSX6rqt6X5NsreJZvJrl9jPH5zY8/\nlI2ls4qfl2cn+foY43/GGEeS/EuSZ2Q1z/ILx5r9jiSPOeq6VdgFK72/krXZYfbXcrK/TmCWSPpc\nksdV1d6qenCSl2TjcctV8Z4kN44x3nLUbQeS/NHm+y9L8uH7/qJlM8b4yzHGeWOMX83G5+D6Mcal\nSa7N6p3lUJLbq+oJmzc9K8lXsoKfl2zcTf30qtq9+STAZ2XjiamrdJbKvb+7P9bsB5K8ZPOnX85P\n8rgk/36qhjxJq76/kjXYYfbX0rK/TmTGJ0Y9N8nXktyS5NWLfqLWFp7Q9cwkR5J8KckXk9yweZZf\nSXLd5pk+keTMRc+6xXP9Zv7viY8reZZs/ETI5zY/N/+c5IwVPsvVSb6a5GCSv0/yoFU5S5J/SPKt\nJD/NxsL842w8ibOdPRs/KfJfm+d9zqLnn/GMK7m/Nmdfux1mfy3Xm/11/Df/dhsAQGNHPHEbAGCr\nRBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIA\nQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMk\nAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0ds16YVWN7RwE\nWE5jjFr0DPNgh8HOc3/315buSRpjrMXb1VdfvfAZnGV9z7Iu5xhj/Zpi0X+evr6cZRXe1uUs8+Dh\nNgCAhkgCAGjsyEiaTCaLHmFunGX5rMs5WE7r9PXlLMtpnc5yf9Wsj9tV1ZjXY3zAaqiqjDV64rYd\nBjvHPPbXjrwnCeZh3759qaq1eNu3b9+i/ziBU2xddth27i/3JMFJ2vwuZdFjzMWxzuKeJFhf67LD\ntnN/uScJAKAhkgAAGiIJAKAhkgAAGiIJ1tDPfvazXH755dm3b1/OOOOMXHTRRfnYxz626LEAZnbp\npZfmUY96VM4888w88YlPzLvf/e5TPoNIgjV0+PDhnHfeefn0pz+du+66K69//evz4he/OLfddtui\nRwOYyVVXXZVvfOMb+f73v58DBw7kNa95Tb74xS+e0hlEEqyhPXv25HWve10e85jHJEkuvvjinH/+\n+fnCF76w4MkAZvOkJz0pu3fvTrLxj1NXVW699dZTOoNIgh3g0KFDueWWW3LhhRcuehSAmb3qVa/K\nwx72sFxwwQU555xz8ju/8zun9Pf3YpJwkk70Qmx/de1Nc/u93vi7TzzpX3v48OE873nPy+Mf//i8\n7W1va6/xYpKw8xxvh11383fm+ns9+wlnn/SvHWPks5/9bKbTaa688so88IEPvNd/92KSwEkZY+Sl\nL31pHvKQh+Stb33roscB2LKqyjOe8Yzcfvvtefvb335Kf+9dp/R3A06pl7/85bnzzjvzkY985Je+\n+wJYJYcPHz7lz0nycBucpGX/d49e8YpX5ODBg7nuuuuyZ8+e417r4TbYeZZ5h333u9/N9ddfn+c/\n//l56EMfmk9+8pN50YtelA9+8IO5+OKL73Xtdu4vkQQnaZkXzG233ZZ9+/Zl9+7d99yDVFV55zvf\nmUsuueSXrhdJsPMs8w67884786IXvSgHDx7Mz3/+8+zduzdXXHFFLrvssl+6ViTBElrmBbNVIgl2\nnnXZYZ64DQBwiokkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaPhnSeAk7d27N1Vr8RJC2bt376JH\nAE6xddlh27m/vJgkcExeTBJYVV5MEgBgm4gkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICG\nSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAIDGrq1c\nvH///nven0wmmUwmcx4HWKTpdJrpdLroMbaNHQbrazv2V40xZruwasx6LbAeqipjjFr0HPNgh8HO\nMo/95eE2AICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIA\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for i in range(10):\n", " choose_play_update(beliefs)\n", " \n", "plot(beliefs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we play 90 more times, the estimates get better." ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkkAAAJKCAYAAAA4FNGaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGhVJREFUeJzt3XuI5Xd9//HXW1dd15hL/4iaaHZTLzUGqoSfaPWPHqpY\nbWyLVsRQg23MH6K0oYUS06pZ8AL+UYrYeCleKGIVWtu6Aa8hHFGwVI26rTEmjdLEiKuhGrXxwq6f\n3x8zppv43t0zmzN7LvN4wMDMyXez78/O7JvnnHPmbI0xAgDAvT1g0QMAACwjkQQA0BBJAAANkQQA\n0BBJAAANkQQA0Ng164VV5bUCYAcaY9SiZ5gHOwx2nvu7v7Z0T9IYYy3err766oXP4Czre5Z1OccY\n69cUi/7z9PXlLKvwti5nmQcPtwEANEQSAEBjR0bSZDJZ9Ahz4yzLZ13OwXJap68vZ1lO63SW+6tm\nfdyuqsa8HuMDVkNVZazRE7ftMNg55rG/duQ9STAP+/btS1Wtxdu+ffsW/ccJnGLrssO2c3+5JwlO\n0uZ3KYseYy6OdRb3JMH6Wpcdtp37yz1JAAANkQQA0BBJAAANkQQA0BBJsKa+973v5QUveEFOO+20\nnH/++fnABz6w6JEAZnLNNdfkqU99anbv3p3LLrtsYXPM/A/cAqvlla98ZXbv3p3vfve7ueGGG3Lx\nxRfnKU95Si644IJFjwZwXOeee25e+9rX5uMf/3h+/OMfL2wOLwEAJ2mZf3z27rvvzllnnZUbb7wx\nj33sY5MkL3vZy3LuuefmTW960y9d7yUAYOdZ5h32C6997Wtzxx135D3vec8xr9nO/eWeJNgmf3DF\nO+b2//rQW16xpetvvvnmPOhBD7onkJLkyU9+cj71qU/NbSZgfV3+rs/P9f/3rsv/31z/f6eK5yTB\nGvrRj36U008//V63nX766fnhD3+4oIkAVo9IgjV02mmn5Qc/+MG9brvrrrvy8Ic/fEETAaweD7fB\nNtnqQ2Tz9IQnPCGHDx/Orbfees9Dbl/+8pdz4YUXLmwmYHWs6sNj8+aeJFhDe/bsyQtf+MK87nWv\ny913353PfOYzufbaa3PppZcuejSAEzpy5Eh+8pOf5MiRIzl8+HB++tOf5siRI6d8DpEEa+qaa67J\n3XffnbPPPjsvfelL8453vMOP/wMr4Q1veEP27NmTN7/5zXn/+9+fPXv25I1vfOMpn8NLAMBJWoUf\nn52VlwCAnWdddth27i/3JAEANEQSAEBDJAEANEQSAEBDJAEANEQSAEDDK27DSdq7d2+q1uKn47N3\n795FjwCcYuuyw7Zzf3mdJOCYvE4SsKq8ThIAwDYRSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQ\nSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAA\nDZEEANDYtZWL9+/ff8/7k8kkk8lkzuMAizSdTjOdThc9xraxw2B9bcf+qjHGbBdWjVmvBdZDVWWM\nUYueYx7sMNhZ5rG/PNwGANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAA\nDZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEE\nANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQ\nSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAA\njV1buXj//v33vD+ZTDKZTOY8DrBI0+k00+l00WNsGzsM1td27K8aY8x2YdWY9VpgPVRVxhi16Dnm\nwQ6DnWUe+8vDbQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAA\nDZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANAQSQAADZEEANDYtZWL/+CK\nd2zXHADb7vJ3fX7RIwArxD1JAAANkQQA0KgxxmwXVo1ZrwXWQ1VljFGLnmMe7DDYWeaxv9yTBADQ\nEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkA\nAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQ2LWVi/fv33/P+5PJJJPJ\nZM7jAIs0nU4znU4XPca2scNgfW3H/qoxxmwXVo1ZrwXWQ1VljFGLnmMe7DDYWeaxvzzcBgDQEEkA\nAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2R\nBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQ\nEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkA\nAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQ2LWVi/fv33/P+5PJJJPJ\nZM7jAIs0nU4znU4XPca2scNgfW3H/qoxxmwXVo1ZrwXWQ1VljFGLnmMe7DDYWeaxvzzcBgDQEEkA\nAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2R\nBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQ\nEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkAAA2RBADQEEkA\nAA2RBADQEEkAAA2RBADQEEkAAI0dGUnT6XTRI8yNsyyfdTkHy2mdvr6cZTmt01nuL5G04pxl+azL\nOVhO6/T15SzLaZ3Ocn/tyEgCADgRkQQA0KgxxmwXVs12IbBWxhi16BnmwQ6Dnef+7q+ZIwkAYCfx\ncBsAQEMkAQA0RBIAQGOmSKqq51bVTVV1c1Vdud1DzUtVPbqqrq+qr1TVf1TVn27eflZVfaKqvlZV\nH6+qMxY966yq6gFVdUNVHdj8eCXPUlVnVNU/VtVXNz8/T1vhs/xZVf1nVR2sqvdX1YNX5SxV9e6q\nOlRVB4+67ZizV9VVVXXL5uftOYuZemtWdX8l67fD7K/lY38d3wkjqaoekORvk/x2kguTXFJVT9z6\ncRbicJI/H2NcmOQ3krxqc/ZXJ7lujPFrSa5PctUCZ9yqK5LceNTHq3qWtyT5yBjjgiRPTnJTVvAs\nVXVOkj9JctEY49eT7EpySVbnLO/Nxt/to7WzV9WTkrw4yQVJnpfkbVW11D/5tuL7K1m/HWZ/LRH7\na4b9NcY47luSpyf56FEfvzrJlSf6dcv4luRfkzw7G1/Qj9i87ZFJblr0bDPO/+gkn0wySXJg87aV\nO0uS05Pc2ty+imc5J8l/JzkrGwvmwKp9jSXZm+TgiT4P9/27n+SjSZ626PlPcLa12V+b86/sDrO/\nlu/N/jrx/prl4bZzk9x+1Mff3LxtpVTVviRPSfJv2fgDPJQkY4xvJzl7cZNtyd8k+YskR79uwyqe\n5fwkd1bVezfvev+7qtqTFTzLGONbSf46yW1J7khy1xjjuqzgWY5y9jFmv+8uuCPLvwvWYn8la7HD\n7K8lY3+deBfsiCduV9VpSf4pyRVjjB/l3n9J03y8dKrq4iSHxhhfSnK8uwiX/izZ+I7loiTXjDEu\nSvK/2aj8Vfy8nJnk97Px3cw5SR5WVX+YFTzLcazy7Gth1XeY/bWc7K8TmyWS7khy3lEfP3rztpVQ\nVbuysVzeN8b48ObNh6rqEZv//ZFJvrOo+bbgmUl+r6q+nuQDSX6rqt6X5NsreJZvJrl9jPH5zY8/\nlI2ls4qfl2cn+foY43/GGEeS/EuSZ2Q1z/ILx5r9jiSPOeq6VdgFK72/krXZYfbXcrK/TmCWSPpc\nksdV1d6qenCSl2TjcctV8Z4kN44x3nLUbQeS/NHm+y9L8uH7/qJlM8b4yzHGeWOMX83G5+D6Mcal\nSa7N6p3lUJLbq+oJmzc9K8lXsoKfl2zcTf30qtq9+STAZ2XjiamrdJbKvb+7P9bsB5K8ZPOnX85P\n8rgk/36qhjxJq76/kjXYYfbX0rK/TmTGJ0Y9N8nXktyS5NWLfqLWFp7Q9cwkR5J8KckXk9yweZZf\nSXLd5pk+keTMRc+6xXP9Zv7viY8reZZs/ETI5zY/N/+c5IwVPsvVSb6a5GCSv0/yoFU5S5J/SPKt\nJD/NxsL842w8ibOdPRs/KfJfm+d9zqLnn/GMK7m/Nmdfux1mfy3Xm/11/Df/dhsAQGNHPHEbAGCr\nRBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIA\nQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMk\nAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0RBIAQEMkAQA0ds16YVWN7RwE\nWE5jjFr0DPNgh8HOc3/315buSRpjrMXb1VdfvfAZnGV9z7Iu5xhj/Zpi0X+evr6cZRXe1uUs8+Dh\nNgCAhkgCAGjsyEiaTCaLHmFunGX5rMs5WE7r9PXlLMtpnc5yf9Wsj9tV1ZjXY3zAaqiqjDV64rYd\nBjvHPPbXjrwnCeZh3759qaq1eNu3b9+i/ziBU2xddth27i/3JMFJ2vwuZdFjzMWxzuKeJFhf67LD\ntnN/uScJAKAhkgAAGiIJAKAhkgAAGiIJ1tDPfvazXH755dm3b1/OOOOMXHTRRfnYxz626LEAZnbp\npZfmUY96VM4888w88YlPzLvf/e5TPoNIgjV0+PDhnHfeefn0pz+du+66K69//evz4he/OLfddtui\nRwOYyVVXXZVvfOMb+f73v58DBw7kNa95Tb74xS+e0hlEEqyhPXv25HWve10e85jHJEkuvvjinH/+\n+fnCF76w4MkAZvOkJz0pu3fvTrLxj1NXVW699dZTOoNIgh3g0KFDueWWW3LhhRcuehSAmb3qVa/K\nwx72sFxwwQU555xz8ju/8zun9Pf3YpJwkk70Qmx/de1Nc/u93vi7TzzpX3v48OE873nPy+Mf//i8\n7W1va6/xYpKw8xxvh11383fm+ns9+wlnn/SvHWPks5/9bKbTaa688so88IEPvNd/92KSwEkZY+Sl\nL31pHvKQh+Stb33roscB2LKqyjOe8Yzcfvvtefvb335Kf+9dp/R3A06pl7/85bnzzjvzkY985Je+\n+wJYJYcPHz7lz0nycBucpGX/d49e8YpX5ODBg7nuuuuyZ8+e417r4TbYeZZ5h333u9/N9ddfn+c/\n//l56EMfmk9+8pN50YtelA9+8IO5+OKL73Xtdu4vkQQnaZkXzG233ZZ9+/Zl9+7d99yDVFV55zvf\nmUsuueSXrhdJsPMs8w67884786IXvSgHDx7Mz3/+8+zduzdXXHFFLrvssl+6ViTBElrmBbNVIgl2\nnnXZYZ64DQBwiokkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaPhnSeAk7d27N1Vr8RJC2bt376JH\nAE6xddlh27m/vJgkcExeTBJYVV5MEgBgm4gkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICG\nSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAIDGrq1c\nvH///nven0wmmUwmcx4HWKTpdJrpdLroMbaNHQbrazv2V40xZruwasx6LbAeqipjjFr0HPNgh8HO\nMo/95eE2AICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIAaIgkAICGSAIA\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for i in range(90):\n", " choose_play_update(beliefs)\n", " \n", "plot(beliefs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can summarize `beliefs` by printing the posterior means and credible intervals:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "50.0 (5, 95)\n", "50.0 (5, 95)\n", "50.0 (5, 95)\n", "50.0 (5, 95)\n" ] } ], "source": [ "for i, b in enumerate(beliefs):\n", " print(b.Mean(), b.CredibleInterval(90))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The credible intervals usually contain the true value, but the estimates are still rough, especially for the lower-probability machines. But that's not the important part. \n", "\n", "The goal is to play the high-probability machines most often. Making the estimates more precise is a means to that end, but not an end itself.\n", "\n", "Let's see how often we played each machine." ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [], "source": [ "for machine, count in sorted(counter.items()):\n", " print(machine, count)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "**Exercise 3** Run another 100 iterations. How many times do we play the best machine?" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Solution goes here" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.11" } }, "nbformat": 4, "nbformat_minor": 0 }