{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Bayesian Decision Analysis\n", "\n", "Allen Downey\n", "\n", "[Bayesian Decision Analysis](https://allendowney.github.io/BayesianDecisionAnalysis/)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Five Urn Problem\n", "\n", "Let's start by solving the Five Urn problem using a pandas `Series` to represent a [Probability Mass Function](https://en.wikipedia.org/wiki/Probability_mass_function) (PMF).\n", "\n", "The key idea is that the **index** of the `Series` represents a set of hypotheses and the **values** of the `Series` represent the corresponding probabilities.\n", "\n", "You have five urns that contain blue and yellow marbles:\n", "\n", "* Urn 0 contains 0% blue marbles.\n", "* Urn 1 contains 25% blue marbles.\n", "* Urn 2 contains 50% blue marbles.\n", "* Urn 3 contains 75% blue marbles.\n", "* Urn 4 contains 100% blue marbles.\n", "\n", "You choose an urn, choose a marble, and it's blue.\n", "\n", "What is the posterior probability that you chose each urn?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I'll use integers to represent the hypotheses, so `0` represents the hypothesis that we chose from Urn 0.\n", "The prior probabilities are equal for the five hypotheses." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 0.2\n", "1 0.2\n", "2 0.2\n", "3 0.2\n", "4 0.2\n", "dtype: float64" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hypos = [0, 1, 2, 3, 4]\n", "prior = pd.Series(1/5, hypos)\n", "prior" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we chose from Urn $i$, the probability of getting a blue marble is $i/4$.\n", "So that's the likelihood of the data." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0. , 0.25, 0.5 , 0.75, 1. ])" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "likelihood = np.array(hypos) / 4\n", "likelihood" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's the fundamental step of all Bayesian updates, multiplying the prior by the likelihood." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 0.00\n", "1 0.05\n", "2 0.10\n", "3 0.15\n", "4 0.20\n", "dtype: float64" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "posterior = prior * likelihood\n", "posterior" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The sum of these products is the total probability of the data." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.5" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "prob_data = posterior.sum()\n", "prob_data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The last step is to normalize the posterior probabilities by dividing through by the probability of the data." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 0.0\n", "1 0.1\n", "2 0.2\n", "3 0.3\n", "4 0.4\n", "dtype: float64" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "posterior /= prob_data\n", "posterior" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The results are the same as what we worked through in the slides." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Bayesian Bandit Problem\n", "\n", "Now let's get to the Bayesian Bandit problem, which is a model for many kinds of A/B testing, including medical trials.\n", "\n", "Suppose you have several \"one-armed bandit\" slot machines, and there's reason to think that they have different probabilities of paying off.\n", "\n", "Each time you play a machine, you either win or lose, and you can use the outcome to update your belief about the probability of winning.\n", "\n", "Then, to decide which machine to play next, you can use the \"Bayesian bandit\" strategy, explained below.\n", "\n", "First, let's see how to do the update." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The prior\n", "\n", "If we know nothing about the probability of winning, we can start with a uniform prior.\n", "We'll use integers from 0 to 100 to represent hypothetical probabilities of winning (as percentages)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "tags": [ "fill-in" ] }, "outputs": [], "source": [ "xs = np.arange(101)\n", "p = 1 / len(xs)\n", "prior = pd.Series(p, index=xs)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "tags": [ "fill-in" ] }, "outputs": [ { "data": { "text/plain": [ "0 0.009901\n", "1 0.009901\n", "2 0.009901\n", "3 0.009901\n", "4 0.009901\n", "dtype: float64" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "prior.head()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "def decorate(title=\"\"):\n", " \"\"\"Labels the axes.\n", "\n", " title: string\n", " \"\"\"\n", " plt.xlabel(\"Probability of winning\")\n", " plt.ylabel(\"PMF\")\n", " plt.title(title)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "tags": [ "fill-in" ] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "prior.plot()\n", "decorate(\"Prior distribution\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bayesian Update\n", "\n", "The prior represents what we believe about possible values of `x` before we have any data.\n", "Now suppose we play a machine once and win.\n", "What should we believe about `x` now?\n", "\n", "We can answer that question by computing the likelihood of the data, a win, for each value of `x`.\n", "If `x` is 50, the probability of winning is 0.5.\n", "If `x` is 75, the probability is 0.75.\n", "In general, we can compute the probabilities by dividing the values of `x` by 100." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "tags": [ "fill-in" ] }, "outputs": [], "source": [ "likelihood_win = xs / 100" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "tags": [ "fill-in" ] }, "outputs": [], "source": [ "posterior = prior * likelihood_win" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "tags": [ "fill-in" ] }, "outputs": [ { "data": { "text/plain": [ "0.5000000000000001" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "posterior.sum()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "tags": [ "fill-in" ] }, "outputs": [], "source": [ "posterior /= posterior.sum()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "posterior.plot()\n", "decorate(\"Posterior, one win\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Suppose we play the same machine and win again. We can do a second update, using the posterior from the first update as the prior for the second." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "posterior2 = posterior * likelihood_win\n", "posterior2 /= posterior2.sum()\n", "posterior2.plot()\n", "decorate(\"Posterior, two wins\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And suppose we play one more time and lose. Now we need the likelihood of losing for each value of `x`.\n" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "tags": [ "fill-in" ] }, "outputs": [], "source": [ "likelihood_loss = 1 - likelihood_win" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And here's the update." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "posterior3 = posterior2 * likelihood_loss\n", "posterior3 /= posterior3.sum()\n", "posterior3.plot()\n", "decorate(\"Posterior, two wins, one loss\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The update function\n", "\n", "The following function takes as parameters a Pandas Series that represents the prior distribution and a string that represents the data: either `W` if we won or `L` if we lost." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "def update(pmf, data):\n", " \"\"\"Likelihood function for Bayesian bandit\n", "\n", " pmf: Series that maps hypotheses to probabilities\n", " data: string, either 'W' or 'L'\n", " \"\"\"\n", " if data == \"W\":\n", " likelihood = likelihood_win\n", " else:\n", " likelihood = likelihood_loss\n", "\n", " pmf *= likelihood\n", " pmf /= pmf.sum()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It uses the quantities in the index to compute the likelihood of the data, then updates `pmf` by multiplying by the likelihood and dividing through by the probability of the data." ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "tags": [ "fill-in" ] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "pmf = prior.copy()\n", "update(pmf, \"W\")\n", "update(pmf, \"W\")\n", "update(pmf, \"L\")\n", "pmf.plot()\n", "decorate(\"Posterior, two wins, one loss\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise\n", "\n", "Suppose you play a machine 10 times and win once. What is the posterior distribution of $x$?" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "outcomes = \"WLLLLLLLLL\"" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Solution\n", "\n", "pmf = prior.copy()\n", "\n", "for outcome in outcomes:\n", " update(pmf, outcome)\n", "\n", "pmf.plot()\n", "decorate(\"Posterior distribution, 9 loss, one win\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Multiple bandits\n", "\n", "Now suppose we have several bandits and we want to decide which one to play.\n", "\n", "For this example, suppose we have 4 machines with these probabilities:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "actual_probs = [0.0, 0.1, 0.2, 0.3]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For purposes of the example, we should **assume that we do not know these probabilities**.\n", "\n", "The function `play` simulates playing one machine once and returns `W` or `L`." ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "from random import random\n", "\n", "\n", "def flip(p):\n", " \"\"\"Return True with probability p.\"\"\"\n", " return random() < p" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "from collections import Counter\n", "\n", "# count how many times we've played each machine\n", "counter = Counter()\n", "\n", "\n", "def play(i):\n", " \"\"\"Play machine i.\n", "\n", " returns: string 'W' or 'L'\n", " \"\"\"\n", " counter[i] += 1\n", " p = actual_probs[i]\n", " if flip(p):\n", " return \"W\"\n", " else:\n", " return \"L\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's a test, playing machine 3 ten times:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "W L W L L W L L L W " ] } ], "source": [ "for i in range(10):\n", " outcome = play(3)\n", " print(outcome, end=\" \")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now I'll make four copies of the prior to represent our beliefs about the four machines." ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "tags": [ "fill-in" ] }, "outputs": [], "source": [ "beliefs = [prior.copy() for i in range(4)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This function displays four distributions in a grid." ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "def plot(beliefs, **options):\n", " for i, b in enumerate(beliefs):\n", " plt.subplot(2, 2, i + 1)\n", " b.plot(label=\"Machine %s\" % i)\n", " plt.gca().set_yticklabels([])\n", " plt.legend()\n", "\n", " plt.tight_layout()" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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tm7dyi9+8Qt+9rOfFbJfabCG4hz9+Mc/5te//jXbtm2js7OTn/zkJ4Xs12JSIebMmcPLL78MwLp161iwYEH35zZv3szMmTOZNm0aM2fOZOfOnQAcO3aMZcuW0dTURHNzM6tXr+5+zOrVq5k+fTpNTU3s2LEDgLVr13LHHXcAcOutt7J06VJmzpzJxIkTefrpp7sf+9BDD3HZZZfR3NzMqlWrTsp6xhlncPXVVwPwla98henTp9PR0VHwEZFO3VCaI4BzzjkH6Hp394c//KGw63R+u/gwcv+L7/Le+x8Vus/J553Dquun9Hu/+fPn88ADDzB37lzeeecdFi1axJtvvgnApEmT2LRpE3V1dWzcuJG7776bZ555hjVr1rBr1y62bt1KXV0dH374Yff+xo4dy9tvv82jjz7Kww8/zBNPPHHSmnv37uWtt95ix44dtLa2Mm/ePDZs2EB7ezubN28mpURrayubNm3iyiuv7DX373//e1588UXuvPPOQR4hDTfO0anN0ezZs9m8eTNz5sxh3rx5ZRylz1lMKkRzczO7d+9m3bp1XHfddSd87uDBgyxcuJD29nYigiNHjgCwceNGlixZQl1d18tw9OjR3Y+56aabALj00kt59tlne13zxhtv5LTTTmPy5Ml88MEHAGzYsIENGzYwbdo0AA4dOkR7e3uvA3X06FEWLFjA0qVLmThxYplHQCrfUJyjV199lcOHD/Otb32L119/nWuuuabMo2AxDSsD+YqsklpbW1m2bBlvvPEGBw4c6N5+7733cvXVV/Pcc8+xe/durrrqKqDrh+/6eut/+umnAzBixAiOHj36hfc5vq/jH1euXMntt9/eb97Fixdz0UUXcddddw3kf09fEs7Rqc0RdP12h9bWVl544YVCislrTCrMokWLuO+++2hqajph+8GDB7sv4q5du7Z7+6xZs3j88ce7B6bnKYjBmj17Nk8++SSHDh0CYM+ePezbt++k+33ve9/j4MGDPPLII2WvKRVpqMzRoUOH2Lt3L9B19uGnP/0pkyZNKnttsJhUoIaGhl6v1SxfvpyVK1dyxRVXnPDtpLfddhsXXHABzc3NTJ06laeeeqrsDLNmzeLmm29mxowZNDU1MW/ePD7++OMT7tPR0cEPfvAD3nvvPaZPn84ll1zS67l3qRaGyhx98skntLa2dq977rnnsmTJkrLX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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot(beliefs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As an example, let's play each machine 10 times, then plot the posterior distributions. " ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "tags": [ "fill-in" ] }, "outputs": [], "source": [ "for i in range(4):\n", " for _ in range(10):\n", " outcome = play(i)\n", " update(beliefs[i], outcome)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot(beliefs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bayesian Bandits\n", "\n", "To get more information, we could play each machine 100 times, but while we are gathering data, we are not making good use of it. The kernel of the Bayesian Bandits algorithm is that it collects and uses data at the same time. In other words, it balances exploration and exploitation.\n", "\n", "To do that, it draws a random value from each distribution and chooses the the machine that generates the largest value.\n", "\n", "The following function takes a PMF and chooses a random value from it, using the probabilities as weights." ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "def pmf_choice(pmf):\n", " \"\"\"Draw a random sample from a PMF.\n", "\n", " pmf: Series representing a PMF\n", "\n", " returns: quantity from PMF\n", " \"\"\"\n", " return np.random.choice(a=pmf.index, p=pmf.values)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's an example." ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "5" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pmf_choice(beliefs[0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following function uses `pmf_choice` to choose one value from the posterior distribution of each machine and then uses `argmax` to find the index of the machine that chose the highest value." ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "def choose(beliefs):\n", " \"\"\"Use the Bayesian bandit strategy to choose a machine.\n", "\n", " Draws a sample from each distribution.\n", "\n", " returns: index of the machine that yielded the highest value\n", " \"\"\"\n", " ps = [pmf_choice(b) for b in beliefs]\n", " return np.argmax(ps)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's an example." ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "choose(beliefs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`choose` has the property that the probability of choosing each machine is equal to its \"probability of superiority\"." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Exercise 3:** Putting it all together, fill in the following function to choose a machine, play once, and update `beliefs`:" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "def choose_play_update(beliefs, verbose=False):\n", " \"\"\"Chose a machine, play it, and update beliefs.\n", "\n", " beliefs: list of Pmf objects\n", " verbose: Boolean, whether to print results\n", " \"\"\"\n", " # choose a machine\n", " machine = ____\n", "\n", " # play it\n", " outcome = ____\n", "\n", " # update beliefs\n", " update(____)\n", "\n", " if verbose:\n", " print(machine, outcome)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "# Solution\n", "\n", "\n", "def choose_play_update(beliefs, verbose=False):\n", " \"\"\"Chose a machine, play it, and update beliefs.\n", "\n", " beliefs: list of Pmf objects\n", " verbose: Boolean, whether to print results\n", " \"\"\"\n", " # choose a machine\n", " machine = choose(beliefs)\n", "\n", " # play it\n", " outcome = play(machine)\n", "\n", " # update beliefs\n", " update(beliefs[machine], outcome)\n", "\n", " if verbose:\n", " print(machine, outcome)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's an example:" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2 L\n" ] } ], "source": [ "choose_play_update(beliefs, verbose=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Trying it out\n", "\n", "Let's start again with a fresh set of machines and an empty `Counter`." ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "beliefs = [prior.copy() for i in range(4)]\n", "counter = Counter()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we run the bandit algorithm 100 times, we can see how `beliefs` gets updated:" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "num_plays = 100\n", "\n", "for i in range(num_plays):\n", " choose_play_update(beliefs)\n", "\n", "plot(beliefs)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The estimates are still rough, especially for the lower-probability machines. But that's a feature, not a bug: 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 many times each machine got played. If things go according to plan, the machines with higher probabilities should get played more often." ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 8\n", "1 8\n", "2 34\n", "3 50\n" ] } ], "source": [ "for machine, count in sorted(counter.items()):\n", " print(machine, count)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "**Exercise 4:** Go back and run this section again with a different value of `num_play` and see how it does." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Summary\n", "\n", "The algorithm I presented in this notebook is called [Thompson sampling](https://en.wikipedia.org/wiki/Thompson_sampling). It is an example of a general strategy called [Bayesian decision theory](https://wiki.lesswrong.com/wiki/Bayesian_decision_theory), which is the idea of using a posterior distribution as part of a decision-making process, usually by choosing an action that minimizes the costs we expect on average (or maximizes a benefit).\n", "\n", "In my opinion, this strategy is the biggest advantage of Bayesian methods over classical statistics. When we represent knowledge in the form of probability distributions, Bayes's theorem tells us how to change our beliefs as we get more data, and Bayesian decision theory tells us how to make that knowledge actionable." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Copyright 2022 Allen B. Downey\n", "\n", "License: [Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)](https://creativecommons.org/licenses/by-nc-sa/4.0/)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "celltoolbar": "Tags", "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.4" } }, "nbformat": 4, "nbformat_minor": 1 }