From e6104dc82e8d18c57c813edea53c3d9a1982c927 Mon Sep 17 00:00:00 2001 From: je-lv Date: Sat, 18 Jan 2020 13:13:59 -0600 Subject: [PATCH 1/2] PT-DE-MX-JoseL --- .../.ipynb_checkpoints/main-checkpoint.ipynb | 229 +++++++++++++++ your-code/main.ipynb | 263 +++++++++++++++--- 2 files changed, 461 insertions(+), 31 deletions(-) create mode 100644 your-code/.ipynb_checkpoints/main-checkpoint.ipynb diff --git a/your-code/.ipynb_checkpoints/main-checkpoint.ipynb b/your-code/.ipynb_checkpoints/main-checkpoint.ipynb new file mode 100644 index 0000000..5c6a37f --- /dev/null +++ b/your-code/.ipynb_checkpoints/main-checkpoint.ipynb @@ -0,0 +1,229 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Intro to Bayesian Statistics Lab\n", + "\n", + "Complete the following set of exercises to solidify your knowledge of Bayesian statistics and Bayesian data analysis." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Cookie Problem\n", + "\n", + "Suppose we have two bowls of cookies. Bowl 1 contains 30 vanilla cookies and 10 chocolate cookies. Bowl 2 contains 20 of each. You randomly pick one cookie out of one of the bowls, and it is vanilla. Use Bayes Theorem to calculate the probability that the vanilla cookie you picked came from Bowl 1?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What is the probability that it came from Bowl 2?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What if the cookie you had picked was chocolate? What are the probabilities that the chocolate cookie came from Bowl 1 and Bowl 2 respectively?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Candy Problem\n", + "\n", + "Suppose you have two bags of candies:\n", + "\n", + "- In Bag 1, the mix of colors is:\n", + " - Brown - 30%\n", + " - Yellow - 20%\n", + " - Red - 20%\n", + " - Green - 10%\n", + " - Orange - 10%\n", + " - Tan - 10%\n", + " \n", + "- In Bag 2, the mix of colors is:\n", + " - Blue - 24%\n", + " - Green - 20%\n", + " - Orange - 16%\n", + " - Yellow - 14%\n", + " - Red - 13%\n", + " - Brown - 13%\n", + " \n", + "Not knowing which bag is which, you randomly draw one candy from each bag. One is yellow and one is green. What is the probability that the yellow one came from the Bag 1?\n", + "\n", + "*Hint: For the likelihoods, you will need to multiply the probabilities of drawing yellow from one bag and green from the other bag and vice versa.*" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What is the probability that the yellow candy came from Bag 2?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What are the probabilities that the green one came from Bag 1 and Bag 2 respectively?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Monty Hall Problem\n", + "\n", + "Suppose you are a contestant on the popular game show *Let's Make a Deal*. The host of the show (Monty Hall) presents you with three doors - Door A, Door B, and Door C. He tells you that there is a sports car behind one of them and if you choose the correct one, you win the car!\n", + "\n", + "You select Door A, but then Monty makes things a little more interesting. He opens Door B to reveal that there is no sports car behind it and asks you if you would like to stick with your choice of Door A or switch your choice to Door C. Given this new information, what are the probabilities of you winning the car if you stick with Door A versus if you switch to Door C?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. Bayesian Analysis \n", + "\n", + "Suppose you work for a landscaping company, and they want to advertise their service online. They create an ad and sit back waiting for the money to roll in. On the first day, the ad sends 100 visitors to the site and 14 of them sign up for landscaping services. Create a generative model to come up with the posterior distribution and produce a visualization of what the posterior distribution would look like given the observed data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Produce a set of descriptive statistics for the posterior distribution." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What is the 90% credible interval range?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What is the Maximum Likelihood Estimate?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/your-code/main.ipynb b/your-code/main.ipynb index 95bfcb9..278b52e 100644 --- a/your-code/main.ipynb +++ b/your-code/main.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -31,10 +31,34 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probabilidad de tomar la galleta de vainilla del Bowl1 es de: 60.0%\n" + ] + } + ], + "source": [ + "# 2 bowls\n", + "# b1 = 30v, 10c --> vanilla : 0.75\n", + "# b2 = 20v, 20c --> vanilla --> 0.5\n", + "\n", + "import numpy as np\n", + "\n", + "def bayes_rule(priors, likelihoods):\n", + " marg = sum(np.multiply(priors, likelihoods))\n", + " post = np.divide(np.multiply(priors, likelihoods), marg)\n", + " return post\n", + "\n", + "priors = [1/2, 1/2]\n", + "likelihoods = [0.75, 0.5] #bowl1, bowl2\n", + "\n", + "print(f\"Probabilidad de tomar la galleta de vainilla del Bowl1 es de: {str((bayes_rule(priors, likelihoods)[0])*100)+'%'}\")" + ] }, { "cell_type": "markdown", @@ -45,10 +69,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probabilidad de tomar la galleta de vainilla del Bowl2 es de: 40.0%\n" + ] + } + ], + "source": [ + "print(f\"Probabilidad de tomar la galleta de vainilla del Bowl2 es de: {str((bayes_rule(priors, likelihoods)[1])*100)+'%'}\")" + ] }, { "cell_type": "markdown", @@ -59,10 +93,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 49, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probabilidad de tomar la galleta de vainilla del Bowl0 es de: 33.0%\n", + "Probabilidad de tomar la galleta de vainilla del Bowl1 es de: 67.0%\n" + ] + } + ], + "source": [ + "priors = [1/2, 1/2]\n", + "likelihoods = [0.25, 0.5] #bowl1, bowl2\n", + "\n", + "for i in range(0,2):\n", + " print(f\"Probabilidad de tomar la galleta de vainilla del Bowl{i} es de: {str((round(bayes_rule(priors, likelihoods)[i],2))*100)+'%'}\")" + ] }, { "cell_type": "markdown", @@ -95,10 +144,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 62, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.74074074, 0.25925926])" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "priors = [1/2, 1/2]\n", + "#yellow bag1 and green bag2 = 0.20*0.20\n", + "#green bag1 and yellow bag2 = 0.10*0.14\n", + "likelihoods = [(0.20*0.20),(0.10*0.14)] \n", + "\n", + "bayes_rule(priors, likelihoods)" + ] }, { "cell_type": "markdown", @@ -109,10 +176,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 63, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probabilidad que el amarillo viene de Bag2 es 26.0%\n" + ] + } + ], + "source": [ + "print(f\"Probabilidad que el amarillo viene de Bag2 es {str((round(bayes_rule(priors, likelihoods)[1],2))*100)+'%'}\")" + ] }, { "cell_type": "markdown", @@ -123,10 +200,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 70, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probabilidad que el verde viene de Bag1 es de 26.0%\n", + "Probabilidad que el verde viene de Bag2 es de 74.0%\n" + ] + } + ], + "source": [ + "for i in range(1,-1,-1):\n", + " print(f\"Probabilidad que el verde viene de Bag{1 if i == 1 else 2} es de {str((round(bayes_rule(priors, likelihoods)[i],2))*100)+'%'}\")" + ] }, { "cell_type": "markdown", @@ -144,7 +233,11 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "# inicialmente las probabilidades de obtener carro es de 1/3, 1/3, 1/3\n", + "\n", + "# una vez se destapa una puerta que NO tiene el carro, las posibilidades de tener carro es suben a 2/3" + ] }, { "cell_type": "markdown", @@ -157,10 +250,64 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 73, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "n_draws = 100000\n", + "prior = pd.Series(np.random.uniform(0, 1, size=n_draws))\n", + "\n", + "prior.hist();" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "observed = 14\n", + "\n", + "def generative_model(param):\n", + " result = np.random.binomial(100, param)\n", + " return result\n", + "sim_data = list()\n", + "\n", + "for p in prior:\n", + " sim_data.append(generative_model(p))\n", + " \n", + "posterior = prior[list(map(lambda x: x == observed, sim_data))]\n", + "\n", + "posterior.hist();" + ] }, { "cell_type": "markdown", @@ -171,10 +318,31 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 77, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "count 1037.000000\n", + "mean 0.147777\n", + "std 0.034120\n", + "min 0.055490\n", + "25% 0.123705\n", + "50% 0.145381\n", + "75% 0.171003\n", + "max 0.317361\n", + "dtype: float64" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "posterior.describe()" + ] }, { "cell_type": "markdown", @@ -185,10 +353,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 78, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.08773787899945479 | 0.2163232974126731\n" + ] + } + ], + "source": [ + "print(posterior.quantile(.025), '|', posterior.quantile(.975))" + ] }, { "cell_type": "markdown", @@ -197,12 +375,35 @@ "What is the Maximum Likelihood Estimate?" ] }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Maximum Likelihood Estimate: 0.13 | 0.12632594021215043\n" + ] + } + ], + "source": [ + "rounded = posterior.round(2)\n", + "mode = rounded.mode()[0]\n", + "probability = list(rounded).count(mode)/len(rounded)\n", + "print('Maximum Likelihood Estimate: ', mode, '|',probability)" + ] + }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "# Aproximadamente el 13% de las personas quienes visitan el ad terminaran convirtiendo (comprando)\n", + "# Por lo que nuestra tasa de con" + ] } ], "metadata": { @@ -221,7 +422,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.2" + "version": "3.7.3" } }, "nbformat": 4, From 2c621f2de77ee66426c12fa74f95b19693c120f2 Mon Sep 17 00:00:00 2001 From: je-lv Date: Sat, 18 Jan 2020 13:17:40 -0600 Subject: [PATCH 2/2] update --- .../.ipynb_checkpoints/main-checkpoint.ipynb | 259 ++++++++++++++++-- your-code/main.ipynb | 10 +- 2 files changed, 235 insertions(+), 34 deletions(-) diff --git a/your-code/.ipynb_checkpoints/main-checkpoint.ipynb b/your-code/.ipynb_checkpoints/main-checkpoint.ipynb index 5c6a37f..3c083f0 100644 --- a/your-code/.ipynb_checkpoints/main-checkpoint.ipynb +++ b/your-code/.ipynb_checkpoints/main-checkpoint.ipynb @@ -31,10 +31,34 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probabilidad de tomar la galleta de vainilla del Bowl1 es de: 60.0%\n" + ] + } + ], + "source": [ + "# 2 bowls\n", + "# b1 = 30v, 10c --> vanilla : 0.75\n", + "# b2 = 20v, 20c --> vanilla --> 0.5\n", + "\n", + "import numpy as np\n", + "\n", + "def bayes_rule(priors, likelihoods):\n", + " marg = sum(np.multiply(priors, likelihoods))\n", + " post = np.divide(np.multiply(priors, likelihoods), marg)\n", + " return post\n", + "\n", + "priors = [1/2, 1/2]\n", + "likelihoods = [0.75, 0.5] #bowl1, bowl2\n", + "\n", + "print(f\"Probabilidad de tomar la galleta de vainilla del Bowl1 es de: {str((bayes_rule(priors, likelihoods)[0])*100)+'%'}\")" + ] }, { "cell_type": "markdown", @@ -45,10 +69,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probabilidad de tomar la galleta de vainilla del Bowl2 es de: 40.0%\n" + ] + } + ], + "source": [ + "print(f\"Probabilidad de tomar la galleta de vainilla del Bowl2 es de: {str((bayes_rule(priors, likelihoods)[1])*100)+'%'}\")" + ] }, { "cell_type": "markdown", @@ -59,10 +93,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 81, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probabilidad de tomar la galleta de chocolate del Bowl1 es de: 33.0%\n", + "Probabilidad de tomar la galleta de chocolate del Bowl2 es de: 67.0%\n" + ] + } + ], + "source": [ + "priors = [1/2, 1/2]\n", + "likelihoods = [0.25, 0.5] #bowl1, bowl2\n", + "\n", + "for i in range(0,2):\n", + " print(f\"Probabilidad de tomar la galleta de chocolate del Bowl{i+1} es de: {str((round(bayes_rule(priors, likelihoods)[i],2))*100)+'%'}\")" + ] }, { "cell_type": "markdown", @@ -95,10 +144,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 62, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.74074074, 0.25925926])" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "priors = [1/2, 1/2]\n", + "#yellow bag1 and green bag2 = 0.20*0.20\n", + "#green bag1 and yellow bag2 = 0.10*0.14\n", + "likelihoods = [(0.20*0.20),(0.10*0.14)] \n", + "\n", + "bayes_rule(priors, likelihoods)" + ] }, { "cell_type": "markdown", @@ -109,10 +176,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 63, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probabilidad que el amarillo viene de Bag2 es 26.0%\n" + ] + } + ], + "source": [ + "print(f\"Probabilidad que el amarillo viene de Bag2 es {str((round(bayes_rule(priors, likelihoods)[1],2))*100)+'%'}\")" + ] }, { "cell_type": "markdown", @@ -123,10 +200,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 70, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Probabilidad que el verde viene de Bag1 es de 26.0%\n", + "Probabilidad que el verde viene de Bag2 es de 74.0%\n" + ] + } + ], + "source": [ + "for i in range(1,-1,-1):\n", + " print(f\"Probabilidad que el verde viene de Bag{1 if i == 1 else 2} es de {str((round(bayes_rule(priors, likelihoods)[i],2))*100)+'%'}\")" + ] }, { "cell_type": "markdown", @@ -144,7 +233,11 @@ "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "# inicialmente las probabilidades de obtener carro es de 1/3, 1/3, 1/3\n", + "\n", + "# una vez se destapa una puerta que NO tiene el carro, las posibilidades de tener carro es suben a 2/3" + ] }, { "cell_type": "markdown", @@ -157,10 +250,64 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 73, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "n_draws = 100000\n", + "prior = pd.Series(np.random.uniform(0, 1, size=n_draws))\n", + "\n", + "prior.hist();" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "observed = 14\n", + "\n", + "def generative_model(param):\n", + " result = np.random.binomial(100, param)\n", + " return result\n", + "sim_data = list()\n", + "\n", + "for p in prior:\n", + " sim_data.append(generative_model(p))\n", + " \n", + "posterior = prior[list(map(lambda x: x == observed, sim_data))]\n", + "\n", + "posterior.hist();" + ] }, { "cell_type": "markdown", @@ -171,10 +318,31 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 77, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "count 1037.000000\n", + "mean 0.147777\n", + "std 0.034120\n", + "min 0.055490\n", + "25% 0.123705\n", + "50% 0.145381\n", + "75% 0.171003\n", + "max 0.317361\n", + "dtype: float64" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "posterior.describe()" + ] }, { "cell_type": "markdown", @@ -185,10 +353,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 78, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.08773787899945479 | 0.2163232974126731\n" + ] + } + ], + "source": [ + "print(posterior.quantile(.025), '|', posterior.quantile(.975))" + ] }, { "cell_type": "markdown", @@ -197,12 +375,35 @@ "What is the Maximum Likelihood Estimate?" ] }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Maximum Likelihood Estimate: 0.13 | 0.12632594021215043\n" + ] + } + ], + "source": [ + "rounded = posterior.round(2)\n", + "mode = rounded.mode()[0]\n", + "probability = list(rounded).count(mode)/len(rounded)\n", + "print('Maximum Likelihood Estimate: ', mode, '|',probability)" + ] + }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "# Aproximadamente el 13% de las personas quienes visitan el ad terminaran convirtiendo (comprando)\n", + "# Por lo que nuestra tasa de conversion es del 13%, es decir de cada 100 visitantes, 13 compran." + ] } ], "metadata": { diff --git a/your-code/main.ipynb b/your-code/main.ipynb index 278b52e..3c083f0 100644 --- a/your-code/main.ipynb +++ b/your-code/main.ipynb @@ -93,15 +93,15 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 81, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Probabilidad de tomar la galleta de vainilla del Bowl0 es de: 33.0%\n", - "Probabilidad de tomar la galleta de vainilla del Bowl1 es de: 67.0%\n" + "Probabilidad de tomar la galleta de chocolate del Bowl1 es de: 33.0%\n", + "Probabilidad de tomar la galleta de chocolate del Bowl2 es de: 67.0%\n" ] } ], @@ -110,7 +110,7 @@ "likelihoods = [0.25, 0.5] #bowl1, bowl2\n", "\n", "for i in range(0,2):\n", - " print(f\"Probabilidad de tomar la galleta de vainilla del Bowl{i} es de: {str((round(bayes_rule(priors, likelihoods)[i],2))*100)+'%'}\")" + " print(f\"Probabilidad de tomar la galleta de chocolate del Bowl{i+1} es de: {str((round(bayes_rule(priors, likelihoods)[i],2))*100)+'%'}\")" ] }, { @@ -402,7 +402,7 @@ "outputs": [], "source": [ "# Aproximadamente el 13% de las personas quienes visitan el ad terminaran convirtiendo (comprando)\n", - "# Por lo que nuestra tasa de con" + "# Por lo que nuestra tasa de conversion es del 13%, es decir de cada 100 visitantes, 13 compran." ] } ],