Last active
June 4, 2020 08:45
-
-
Save andijcr/ed29da9d548e73fbe20cdf87e5774350 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# uniform distribution generator: just wrap random()\n", | |
"import random\n", | |
"\n", | |
"def uniform_dist(seed = None):\n", | |
" random.seed(seed)\n", | |
" while True:\n", | |
" yield random.random()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# normal distribution: use box-muller transform to map 2 uniform indipendent samples\n", | |
"# into 2 normal indipendent samples\n", | |
"from math import sin, cos, log, sqrt\n", | |
"import math\n", | |
"def normal_dist(uniform_dist):\n", | |
" while True:\n", | |
" u=next(uniform_dist)\n", | |
" v=next(uniform_dist)\n", | |
" yield cos(2*v*math.pi)*sqrt(-2*log(u))\n", | |
" yield sin(2*v*math.pi)*sqrt(-2*log(u))\n", | |
" \n", | |
"# normal distribution with deviation: mu + sigma*normal_sample\n", | |
"def normal_dev_dist(mu, sigma, normal_dist):\n", | |
" while True:\n", | |
" yield mu + sigma*next(normal_dist)\n", | |
"\n", | |
"# finally the normal probability density function, that given a mu, sigma and a sample returns the probability for it \n", | |
"def exp_part(mu, sigma, x): return (((x-mu)/sigma)**2)/-2\n", | |
"def normal_pdf(mu, sigma): return lambda x: (math.e**exp_part(mu, sigma, x))/(sigma*sqrt(2*math.pi))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# to extract N samples\n", | |
"from itertools import islice\n", | |
"\n", | |
"# to add a bit of swag\n", | |
"%matplotlib inline\n", | |
"from matplotlib import pyplot\n", | |
"\n", | |
"def plot_given_samples(mu, sigma, sample_list, n_bins=50):\n", | |
" samples=sorted(sample_list)\n", | |
" # plot the hystogram of the samples\n", | |
" pyplot.hist(samples, n_bins, density=True)\n", | |
" # compute the domain and the codomain for the pdf, using the first and the last sample\n", | |
" step =0.1\n", | |
" domain = [x*step for x in range(int(samples[0]/step), int(samples[-1]/step))]\n", | |
" fn_exp = normal_pdf(mu, sigma)\n", | |
" codomain = [fn_exp(x) for x in domain]\n", | |
" pyplot.plot(domain, codomain)\n", | |
" pyplot.show()\n", | |
"\n", | |
"\n", | |
"# function to plot a sample distribution and the pdf it approaches\n", | |
"def plot_dist(mu, sigma, n_samples, n_bins):\n", | |
" samples = *list( # to also reify a generator\n", | |
" islice( # to take N samples\n", | |
" # a generator for a normal distribution, from a generator for a uniform dist\n", | |
" normal_dev_dist(mu, sigma, normal_dist(uniform_dist())), \n", | |
" n_samples # N of samples to take\n", | |
" )),\n", | |
" plot_given_samples(mu, sigma, samples, n_bins)\n", | |
" \n", | |
"plot_dist(0, 1, 20, 4)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# to plot the samples in a histogram\n", | |
"plot_dist(0, 1, 300, 10)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# more samples, more bins\n", | |
"plot_dist(0, 1, 100, 50)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# wrapping in normal_dev_dist scales the normal distribution\n", | |
"plot_dist(-30, 0.3, 10000, 50)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"from itertools import product\n", | |
"# lets create some samples of a normal dist with parameters theta_0\n", | |
"theta_0 = (-2, 3.5)\n", | |
"samples = normal_dev_dist(*theta_0, normal_dist(uniform_dist(42)))\n", | |
"\n", | |
"def candidates_set(center_sample):\n", | |
" # use the first sample to generate candidates distributions\n", | |
" #first_sample = next(samples)\n", | |
" # the center will be +-10 around the samples in increments of 1\n", | |
" mu_s = (x for x in range(int(-10+center_sample), int(10 +center_sample) ))\n", | |
" # the spread will be 0.2-5, with increments of 0.2\n", | |
" sigma_s = (x*0.2 for x in range(1, int(5/0.2)))\n", | |
" \n", | |
" # assemble the candidates in triplets, with a priori probability of 1/N (we could be a bit smarter) \n", | |
" theta_temp=list(product(mu_s, sigma_s))\n", | |
" return list((t[0], t[1], 1/len(theta_temp)) for t in theta_temp)\n", | |
"\n", | |
"theta_candidates = candidates_set(next(samples))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# lets print a scatter plot of this, scaling by 100 the probabilities\n", | |
"def plot_scatter(triplets, scale):\n", | |
" x, y, p = list(zip(*triplets)) #reassociate the list of triplets in 3 list of\n", | |
" pyplot.scatter(x, y, list(scale*x for x in p) )\n", | |
" pyplot.show()\n", | |
"\n", | |
"plot_scatter(theta_candidates, 1000)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# the probability that theta_i is the right one, after seeing a sample, is given by\n", | |
"# the probability of that sample being generated by the theta_i (run the sample through the normal dist),\n", | |
"# multiplied by the probability of the theta_i (it's the result of the previous step)\n", | |
"# divided by the probability of the sample (?). \n", | |
"# this last term is translated in the sum over all the theta candidates of the probability of the sample\n", | |
"# why? not sure for now\n", | |
"def bayes_iteration(theta_candidates, sample, iter_num):\n", | |
" #all_p_x_theta = sum([normal_pdf(mu_i, sigma_i)(sample) for mu_i, sigma_i, _ in theta_candidates])\n", | |
" all_p_x_theta = sum([p_i*normal_pdf(mu_i, sigma_i)(sample) for mu_i, sigma_i, p_i in theta_candidates])\n", | |
" new_p = lambda m, s, p : (normal_pdf(m, s)(sample)) * p/ all_p_x_theta\n", | |
" #adj = lambda p, oldp, i : (p+(i-1)*oldp)/i\n", | |
" #adj_p = lambda mu_i, sigma_i, p_i, iter_num: adj(new_p(mu_i, sigma_i, p_i), p_i, iter_num)\n", | |
" return [ (mu_i, sigma_i, new_p(mu_i, sigma_i, p_i) ) for mu_i, sigma_i, p_i in theta_candidates ], iter_num+1\n", | |
"\n", | |
"def bayes_runner(candidates, samples):\n", | |
" an_iteration=candidates\n", | |
" iter_num =1\n", | |
" def runner():\n", | |
" nonlocal an_iteration\n", | |
" nonlocal iter_num\n", | |
" next_s = next(samples)\n", | |
" an_iteration, iter_num=bayes_iteration(an_iteration, next_s, iter_num)\n", | |
" return an_iteration, iter_num, next_s\n", | |
" return runner\n", | |
"\n", | |
"def bayes_printer(iteration_values, iter_num, sample, prev_samples):\n", | |
" print(\"iter_num: {}\".format(iter_num))\n", | |
" print(\"sample: {}\".format(sample))\n", | |
" max_p = max(iteration_values, key=lambda x: x[2])\n", | |
" print(\"max p: {}\".format(max_p))\n", | |
" print(\"tot_prob: {}\".format(sum([p for m, s, p in iteration_values])))\n", | |
" prev_samples.append(sample)\n", | |
" plot_scatter(iteration_values, 100)\n", | |
" plot_given_samples(max_p[0], max_p[1], prev_samples)\n", | |
" return prev_samples\n", | |
"\n", | |
"b_runner=bayes_runner(theta_candidates, samples)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"iter_num: 2\n", | |
"sample: -1.48198367377924\n", | |
"max p: (-1, 0.4, 0.021271282944615527)\n", | |
"tot_prob: 1.0\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAWoAAAD7CAYAAABDld6xAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO3dd3jc1ZXw8e9VtSXLBVcw2KYHwm4ScNj0vmxCdlN286Tsu9m8Gzak7pJkU0jyJiEhjYSEhQBZEiA2ppkABmMbg3tvkpuqJdmSrD7qo5nR1N99/xhpYxxJlu8Z2T/h83keP8ie+R2u7tw5Mxqdc6+x1qKUUsq/ss72AJRSSo1OE7VSSvmcJmqllPI5TdRKKeVzmqiVUsrnNFErpZTP5YzlTsaYeqAfSAFJa+3i8RyUUkqpPxtToh70bmtt57iNRCml1LBOJ1GP2axZs+yiRYvGI7RSSr0qlZSUdFprZw9321gTtQVeNsZY4AFr7e9Hu/OiRYsoLi4+zWEqpdS5yxjTMNJtY03Ub7XWthhj5gDrjDFV1tqtJ/1PbgZuBliwYIHzYJVSSr3SmKo+rLUtg/8NACuA64e5z++ttYuttYtnzx723btSSikHp0zUxphCY0zR0NfADUDZeA9MKaVU2lg++pgLrDDGDN3/cWvt2nEdlVJKqf91ykRtrT0GvO4MjEUppdQwtDNRKaV8ThO1Ukr5nK8S9e5jXQSCUVGMdRXtdIfjztdba3l2fxPBaMI5RiyZ4vE9xxmIp5xjBKMJHtlVTzzpOcdoD0ZZtqsez3M/xaeuM8zyfcedrwcob+lj5aEWUYyShm42VrWLYuys7WRvXbcoxqYjASpbg6IY6yvaaeyOiGK8XN4mWueQfq5I1qjnWTYdCZASrK9kymPPsS7n6wHiSY/ylj5RjIF4iuNdssckEk/S0R8TxRiJrxL1mtJWdgkftGW76kUPfDCa5A/bjnG40f2Bb+oZ4P7NtdQE+p1jlDX1ce/GWlp6B5xj7Dzayd0baugdcH/Reamsjd+sqxa9YDy1r5Hfbqhxvh5g6c4GHth6TBTj4R11LN1ZL4rxx+11PF3SJIqxZGcd6yrcX3SstTyyq0H0ohNNpPhTSaNojfYNJFhb1iZKTm3BKNtqO0Xrq6ErTEWL7MWzuXeAus6wKEYgGKNV8HwdjRmPMxMXL15sz1ZnorWWwQoVZ8mUR0627DUslkyRn5MtijEQTzE5zz2GtZZIPEVhvvtOAdZawvEUUwQxUp4llkxRkOceI5HySHmWSbnu8xFPehgDuYLHNp70yMkyZGW5r7FkyiM7y4jWaSbWufIXY0zJSBvejcteH2dTJhavNEkD4iQNiJI0pOdCkqSHYkiSNEB2lhElaUgnV0GOBiAvR/64ZiJGJtaXJulzi68++lBKKfWXNFErpZTPaaJWSimf00StlFI+p4laKaV8zleJ+r5NteyolZ329d0VpewW1FGHY0lufqSY0ib3Ourm3gE++cAuagMh5xilTX18+L7ttPW5NwBtOhLgH367TdS881RxIx+5bweJlHud6/2bavn0Q3ucrwf4+ZpKbnnygCjGD54v4yerKkQxvv30YR7cJqvn/tbTh1h12L0ByFrLd54tFdVRx5Met68q51iH+xoNxZLcvb6aHkHjTWcoxrLdDSQF66uld4D1lbJmqNa+AQ4c7xHFCASjHBXM52h8VZ534YzJzJySJ4qxaGYBs4vyna/Py8ni4lmFTC/IdY4xJS+HS2ZPYepk9+mdXpDLZbOLKMh3r0mbU5TPZXOKyBOUg100o4DL50whW1AOdvHsQjpDso6tS2dPYcok2XK9ZHahaC4ALplTyMLzCkQxLp5VyPnTJotiLJpVwCzBcyUny3DhjAKmTnZf53nZWcybNklURlqQl82conyyBXXphXk5zBA8XwEm52ZTJFxf+TnZJAVdmqN51TW8KKXURDRaw4uvPvpQSin1lzRRK6WUz2miVkopn9NErZRSPqeJWimlfM5Xibo9GCWacN/IHNIb3Uv2toX0RveSuk5rLSUN3aIN1RMpj93HupBU5UTiSXYdle3v3ROOs69ettl+ezDKocZeUYzG7gjV7e57JwPUd4bFG/Yf7QiJN4evDYQIxZKiGMc6QuJ13tgdEa0vSD+2UpI6bEg/3/oFvQJDMaS5x1orfkxG4qtE/d/rq8UngXzn2cOsLnWP0RdJ8JXHD7ClusM5RlVbP196bD/7BQX0W6s7+OKjJdQImmae3d/MzcuKCfS7P5ke2n6Mm5bsI5Z0X8S/eukIX3ysxPl6gNteKOfryw+KYnx3RSnff75MFOPWZw5z17pqcYxHBAcYWGu59ZlSXixrdY4RS6b43opS9h93fwHtjcS5fVWFKFk39US4Z2ON6I1RbSAkzhtHO0LsOiprtqvvilDdJnszMRJf1VF3h+MUTcoRbeze0jvAnKJ80Z6/RztCLJpZ6FyEb62lojXIVfOmOm8wn0x5lLUEed2F05z3Ho4mUlS19fP6i6Y7XQ/pI8EaOiP81YXTnGN0hWJ0hGK8Zt5U5xhtfVEGEikunlXoHKOpJ0JOVrpJw1Vjd4SiSTlML3BvNmnsjjBrSr6oUaS5d4C5wnUeCEaZXZQv2tu6NxIXzQWku4Gl+6ZHEynRoRKQ/ilWknustXgW57wxWh21rxK1Ukqdq7ThRSmlJjBN1Eop5XOaqJVSyuc0USullM9polZKKZ/zVaJ+/mAzFS1BUYzfbT4qaoyIJVPctrKchq6wc4zucJyvLT8o2vS/rjPMFx4tETUDHDjew+ceKWYg7l4DvamqnS8sKxE17zyzv4lv/umQ8/UAS3bU8YsXK0Ux7t9Uy0PbZZv+372hmhcONYti3LOhmj2Cwy2stfxuUy21Afd17nmWP+6oE9XYx5MeT5c0iRpFIvEkGyvbRY03fQMJ0UEfQzEkz3lIl7JKm6FG4qtE3ROOE4nLOra6QjFRl1LKs3T0x0SdY7FkikB/VPS9hGNJAsEoMUGnUzCapK0vSlzQTNAVTtAWjIoSdaAvKnrRAmgLRmkVxmgPRmkPyp5IgWCMrpCsky7QH6M3IovREYoRjLqvr5S1dIfjROPuayPlWfoGEqL1FU96BKNJJPvtx5OeOG8kU564q9DzrKhxZzRaR62UUj6gddRKKTWBaaJWSimf00StlFI+N+ZEbYzJNsYcMMasGs8BKaWUeqXTeUd9CyCrj1JKKXXaxpSojTEXAh8EHhzPwWSiAiUT5THSDcQhXVMpYa2lMyQrJfM8K97YPZHyCAhjRBMp8fcSiSfpi8jmNBxLimrKh8aREK6xaCIlXuuZWOfjUfGlxsdY31H/N/AtYHyKBAf94sUq1pS6b4YO8PllJawVbKjeF0nwoXu3s1VwcEB1ez9/+5stooMDNld38N5fbxE1NTy5r5H3/XqLKFnfvb6G9/5miyjBfW9FGR+8Z5vz9QD/8fgBPvXgblGMzz1SzJcf2y+K8W9L9vHjFypEMT67ZB8Pba8TxfjcI8WsLWtzvj6e9Pjqkwcpa3ZvFOmPJvjJ6grRi3AgGGXJzjpRnX5jd0T0fAVo7RugUths1xmK0dIrO0FoJKfcrdsY8/dAwFpbYox51yj3uxm4GWDBggVOg/mH113AhTMmO1075Ka3Xcxr57tvcj91cg5fe98VXLtwhnOMRTML+ebfvYarz3ffKP+6hTP49vtfw8KZ7hvlv/eqOVgss6fkO8f4p+suZMF5BaJN7j/7tkW888rZztcDfOndlxEckL2j/o/3XE5ejvsm+QD/+Z7LmVPkPp8AX3rXZVw2Z4ooxr+//RLRYQ55OVl86m8WcMXcIucYU/JzuPGvzmdmofvBAbOL8nnzJbOcN9sHuGC6LGcAzJqST57g0ACAqZNyiadkhxeM5JQNL8aYnwOfBpLAJGAq8Ky19l9GukYbXpRS6vSIGl6std+x1l5orV0EfBLYOFqSVkoplVlaR62UUj53WidKWms3A5vHZSRKKaWGpe+olVLK5zRRK6WUz/kqUe851iXet3j14VbR5t2eZ1m2q160Yf9APMXvNteKml46QzHuWlctql+u6wxz50tHRA0apU19/GbdEVFzxM6jnTyw5ajz9QAbKttZvu+4KMbqwy2sq3CvPQZ44VAzJQ3u9fGQPiDjWEdIFGPV4RbxJvXrKtpF68tay47aTjxBDXTKs6JabkjXhDd2y+qXY8kUXcKmrFgyRViwj/1ofJWo9x/v4YjgdBaAjVXtlLW4P/CheJIVB5pFp8S09A3wxN7jNHS6L54jbf0s291AS9+Ac4zi+m4e2S170dlY1c4jOxsYEHRrrjzYwpKd9c7XAzxV3Mhje2SJ+qniJp4uaRLHkDRUAbxwqIVdR91PeAHYUBmgXLDOkymP3Uc7aepxX6OReIrS5j7RG5LeSJxjnSFRsu+JxOkQnFQDEIomxXX60YSXka7m4ejBAePE8yxZgiJ+SLdv5wqL8KOJFJNy3YvwrbVEE56o4cXzLPGUJxpHyrOkPEtejvt8DHW/SZorPM9iDBgje2yVOtloddSnVfWhxk6apAFxkgZEyRHSCUmSpCE9F5OyZDGys4wowQ7FkMrE46rU6fLVRx9KKaX+kiZqpZTyOU3USinlc5qolVLK5zRRq1PKRGWQblKvlDtfJeplu+rZV98tivHjF8rZfcy9RjUcS/Jvf9zLAcGm/8e7Inzwnm1UtblvRL63rpu33bGRhq6wc4yVh1p440/Wixoj/mdLLdf/bAORuHsh/23Pl/OuOzeLkvUtTx7g4w/scr4e4EuPlvC15QdFMb782H7+e321KMbXnzrIiv2yeu4frixjj2CdpzzL3eurqe90X1/RRIon9jaI6qj7Igk2VQVEa6MnHKeqVbbpfzCaoLXXvWcBBk8hEtZij8RX5XmXzpnCvKmTRDFee8E0LjqvwPn6SbnZXLtwhmgz8umFuVx/8XmiDfvnz5jMWy+bxQzBpuyXzi7kHVfMomiS+8P81xdO591XziY/x7287vpLzgNh7fFbL51Fu7Cp4c2XziRP8H0ALF40g4tnuR/mAHDtRdO5Yp77hv0AfyVc51kGLptTxMwp7usrLzuL+dMLKBCUgBbkZzNrSr5obUzOy2aKYI1D+ntJCUtZs7MM4/WDoza8KKWUD4gODlBKKXV2aaJWSimf00StlFI+p4laKaV8ThO1Ukr5nK8SdUvvgHg/15r2fnGMkoZuYkn3GCnPsqkqINqwfyCeYk1p6/9uzemiOxxn5aEWUY1qY3eE1Ydl+y/XBvrZUNkuilHe0ieqG4b0IQgVLbJ629KmPtEezpD+Xvoisnrb6vZ+0RoFqO8Mi/aBBsQHfQCi/dIh3UwVEm7Yn97OVzafnmdFz/nR+CpRP7u/me01naIYd2+oYfORgPP1/dEE3322TLSxe3V7P9965jAHjvc6x9hS3cG3nj4sappZcaCZbzx1iKYe90L+h7bX8dXlB0SF/L9+uZr/fOKA6AXj9lUVfPuZw87XA/xgZRm3r6oQxbjthXLu3VgrivGzNZUsL5YdgnDXumo2H+lwvt7zLL/feozqgPsBGdFEiuX7jovWRk84zrYa9+8DoCscp77DvXEHoG8gQU9E9oIxkEiJDtgYja/qqONJj9xsIyp+D8WSFOZli2IE+qPMFhbh13eGWTizwDmG51mOtPfzmnlFzjGiiRS1gRDXzJ/mdD2kX7gauiKiGN3hOJ2hGFfMdW/yCASjRBMeC2a6N3m0B6NkGcPsIvdGpEB/lIK8HKbkuzdYdIfjFE3KEe033h9NMCU/R7RGY8mUqJEJMnNAhkobrY7aV4laKaXOVdrwopRSE5gmaqWU8jlN1Eop5XOaqJVSyuc0USullM/5KlFvqQ5wrCMkivHIrnpq2t1rQ2PJFLetLKdOsKF6oD/K55cV09jt3hhR2Rrk4w/soj3o3lCwtbqDD927nV5Bfeifihv50L3bRc0Av9tcyyce2CVqrrjjxSpuefKA8/WQrsW+86Ujohg/X1PJU/saRTHuXl/NzqOyfoGlO+uoFdRAW2t5/mAzXSH3QyVSnmV7TQfxpHuTRzSR4oigV2AoRkC4V3ksmaJfcAACQCLliZtmRuKrgwM8zyJslCKVgRhJz8OTlC1aSKSsaBPxlGdJpjxxjERSFiOR8jIQQ96xlUh5ooQwFCNHWPObSHkkPOk4LMIQJFOZea5IQlhr8axFFgXxXKQH44sQ40brqJVSyge0jloppSYwTdRKKeVzmqiVUsrnTpmojTGTjDF7jTGHjDHlxpgfnYmBKaWUShtL1UcMeI+1NmSMyQW2G2NetNbuHuexKaWUYgzvqG3aUHFz7uCfcalkyUQFSiY27g5GE+KxtPa57wEN6VJFSZ0spGtDpRvl90cTlLf0iWJ0h+NUC2rbATr6Y6K69KEY3cJN6nvCcQbislrZUCwp3rBfWqoImXm+qTNjTJ9RG2OyjTEHgQCwzlq7ZzwGs7y4UXyKx49eKGeT4OCAcCzJpx/cIzo4oKotyIfv3UFxfbdzjJcr2vjQvTsoa3ZPkkt21POhe7eLmnfueLGKf/jtdlFjxDefPsTf/3Y7ScGL6BceLeETv9/lfD3Avy/dxxcfLRHFuHlZsfjwga8+eYBluxtEMW57oZwt1e4b7ltr+e3GGlGDWSLl8cz+JiJx99NV+qMJDjT0OF8/FEN60kw0IW94iSc98ak7I7LWjvkPMB3YBFwzzG03A8VA8YIFC6yL5p6IHYgnna4dcqQtKI6x51iXjSbcYyRTnl1b1mpjiZRzjP5owj5T0mjjSfcYbX0D9ok9DTaZ8pxj1Ab67ZN7G6znuccobeq1zx1ocr7eWmtLGrrtxqp2UYzi+i578HiPeBwNnWFRjMONvbYnHBPFqGoNitaotdbWdYREj6u16TUm1RuOi673PM+GYwlxDMnzdSiG5LkGFNsRcu9pN7wYY34IhK21d450H214UUqp0yNqeDHGzDbGTB/8ejLwPqAqs0NUSik1krFUfZwPLDXGZJNO7E9Za1eN77CUUkoNOWWittYeBt5wBsailFJqGNqZqJRSPqeJWimlfM5XibqmvV/ckLC1ukNU82utZdnuBnoE4wjHkvxqbZVow/7m3gG++2wpQUFtZ2lTH19bflBU57q5KsAtTxwQNVg8d6CJ7zxbKmqweGLPce5aV+18PcCju+v5U7Fs0/8n9x4X1dgDrDrcwlHhARlbhOscYP/xHnHdb20gJHpcPc/S0S/7PlKeFa3xoXFIm+U8z4obmUbiq0Td0jdAd1j2oNUGQjT3uncFxpIee491i2J0heJsqu6gVVCEX98ZZm1ZK4Gg+3wcbu7lxdJW0YvfjqNdrC1vIxxzfyJsqAqw+nALScEifrGsjTWlrc7XA7xU3s7LFe2iGNtqOtklbMraW9dNdZusU7O6LShaowCtvQP0hN3fCKQ8S08kTkzwIh5PeUQTsiSb9DwSKVmCTFlLSphkLeN3+IAeHOBj1lqMkZ1IEk965OW4vx5ba4kmPCbnZTvHSA2+W5mUK4vhWUtutux7AcRzqtR4GK2O2ldHcalXykRCkSTpoTFIkjRAdpYhOysDMZDNhyZoNVH56qMPpZRSf0kTtVJK+ZwmaqWU8jlN1Eop5XOaqH1Msn8zpKscQoKyOkhXW0jqwSG9b7GkHnwoRjQhq/lNjWOdq1LjyVeJuri+m3rBJvcAj+9pEG22H0um+K+nDopiNHSFufHubVS2up+usrW6g2tvX0eN4GSUpTvref2PXqahy31Ob1tZznU/WS9qSvjy4/u5/qfrRYn20w/t4Ya7tjhfD/AvD+3hpqX7RDG++GiJuPHmJ6srWFvWJorx2G7ZOgfYfCRAoN+91t/zLOXNfaJmqFgyJW54SaQ8ccNLKgMNL9aO3xsBX5XnzSmaxPTCXFGMy+cWcdGMAufr87KzePOls7joPPcYc4om8YFr5jF/xmTnGJfPncI/XXch86ZNco6xeNF5fPQN85ldlO8c471XzSEcSzJtsvvj8sFrzmf2lHzyBaWCH3n9fPET+iOvv0A0BoAbrp7LgpnuawPgby6eyZVzi0QxLp9bJFqjAPOmTWJGQZ7z9VlZhhmFeeRmu5c95mVniUtIs43By5KVXqYvl5dvjlcFqDa8KKWUD4gODlBKKXV2aaJWSimf00StlFI+p4laKaV8ThO1Ukr5nK8SdXc4LqrJBKjrDIvrIUsaekQxUp5lbVmb6HsJRhM8sfe4KEZjd4Q/bD0m+l5Km/q4f1OtaK/eXUe7eHh7nfP1ANtrOll1uEUUY9fRLorru0Ux9h/v4XhXRBSjoiVI34CsASgT67w9GBVt+g/QL2xkAsSNTDYTe0lnoAZ6PCrohvgqUTd2R2jtk22GvudYF1Wt7k0iiZTHg9uOUdHi3qzS0BXmZ2sqqWpzj7GztpMfr6qgWtDw8tyBZn66ppI6QRPRg9uP8cuXjogel7s3VPPjVRWipoSfv1jJ958rc74e4BcvVvLLl46IYtyzoYZHdteLYizfd5zNRwKiGLuOdorWOcDRQIjOkHvXqbWW1t4BUQdtpjpOk560WUV0+QlxxidZax31MJIpjxzBBvUAfQMJUZOItZbj3REWzix0jhFNpKgNhLhm/jTnGH2RBPVdYV530XTnGB39MTr6Y1x9wVTnGIH+KLGEJ2ry6A7HyTaGaQXuj0s4liQvJ0t0gEEy5ZGdZXR/bPUKo9VRa6JWSikf0IYXpZSawDRRK6WUz2miVkopn9NErZRSPqeJWimlfM5Xibqtb0DcCLCvvptAULYZ+h931NHS61433BWK8bXlB0UxDjf18sF7ttEsiLFifxNv/Ol6UQ30r16q4q9ve4mukPte0N/80yEW/2SdqF72P57Yz0fv3+F8PcCtzxzmtpXlohh3rTvCs/ubRDGeLmkSb/q/t65LtM4B6jvDDMRlNcw94bioUcTzLLGkPxpexrNhRcpXBwdkGYNw/2/yc7LIFgQxBibnZovqZHOysijMyyFHsKF6fk42Uyfnkiv4Xgrzc5g2OZecLPfvZdrkXKYX5IliTC/IZWZhvmhT9RkFeYRjsif01Em5TMqVvTcpzM+hMF/2tCnIyxZvli9d58BgLbcoBMaM32b5E421dtxq47WOWimlfEDrqJVSagLTRK2UUj6niVoppXzulInaGHORMWaTMabSGFNujLnlTAxMKaVU2lh+fZ0E/stau98YUwSUGGPWWWsrxnlsSimlGMM7amttq7V2/+DX/UAlMH+8B+ZKuvk3yDcyB2jrk9W4JlMehxp7RbWdfZEEG6vaRTEauyOsKW0Vxahp72dDZbvz9QC1gRCHGntFMZp65Pud94Tj4vURTaTENbuZWOdq4jitz6iNMYuANwB7xmMwrX0D9ITdNzIH2Hm0S3QCh7WWO18+wpE2903Zm3oi3LR0n+jggPWV7fzzH3ZTLjjA4Pdbj/LZJcWUNbvHuO2Fcr702H5qAiHnGF9bfpCblhbTLXhsv/BoCZ/6w27n6wG+8vgBvvrkQVGMH64s5/7NtaIYS3fWs7m6QxRje22H+KSZus4w4Zj7YQ4AvRF5w4v0VKdMNav4ueFlzHXUxpgpwBbgp9baZ4e5/WbgZoAFCxZc19DQcNqDiSc9crNlG6qHYkkK87JFMdr6osydmu8cw1pLeUuQ114w1TlGNJFiW00n73nNHOfGhra+KFuqA3zsuoucY1S2BtlzrIt/ffMishxjlDR0UxsI8fHFFznPR0lDD8FogndfOcfpekgfgZWTbbhibpFzjONdEYom5TCjMM85RmcoxrTJuaKmqkys81gyRX5OtvP1kD5dRdp4k4lGkfFsNjlTxAcHGGNygVXAS9ba35zq/trwopRSp0fU8GLSL1MPAZVjSdJKKaUyayw/e70V+DTwHmPMwcE/N47zuJRSSg06ZXmetXY7MLE//FFKqQlMOxOVUsrnNFErpZTP+SpRRxMpEilZTWWgPypuSChp6CYSd68vjSVTLNlRJ6pRbeyO8F9PHRQdpLCtpoOPP7BLVL/88PY6PnD3NlF9+x1rq/jo/TtEj8udLx/h68tlNdAPb6/jsT2nXzZ6onUVbeLGm4qWIB397gcxAASC8nUeiSfFjTNJ4fM1EzXQfq5/zhRfJWrPWjzhpMeTHnHh4ukKxQlF3ZPsQDxFbUeIfkGMQH+MQ019BAWJuqa9n5KGHnoj7kn2cFMvla1BglH3cRw83suhxl5RYtlX183uY13O10P6ezncJDtZ5WhHmOYeWaNJVzgmmk9IvxmICRtFPAspaYekPfuJcqLXT4+FHhzwKpdIeaLGipRnCUWTTCvIdY4RT3pEkymmTnKP4XnpF/EcwfeilJ+NVkftq6O4VOZJkjSkj2uSJGmAvJws8dFTWVmGLC0+UucofXuilFI+p4laKaV8ThO1Ukr5nCZqpZTyOU3UPibdpzeZ8sR7FvdG4uK64UB/lArBvtoAfQMJce1xMuWR0g331QTkq0QdT3riAvqecFzUrAKwt65LlBT6BhL8+IVy2oPup7zsPtbFO365iYausHOMezbU8I5fbRIlya88foAP37eDsmb3+uN/eXAPN96zTXS6yice2MW779zsfD2kDx+45ckDohgPbz/GS2WtohiHGnto7BbWYodi4nUeS6bEL1yel5lN+9XofFWel51lxAVY+blZ4s3Q502dzHmCjeGnTsrhbZfPYtaUfOcYV82byr+//WLmTZvkHONvr55He3+MhTMLnGN87Lr55OVkiWJ88o0LKG7oYWah+3z837cuoiMoe0f9f960kDxhueL1F89kurBcce7UyUydLHvqTcrNFq/zbGMQ7vmPMfKGEz044NS04UUppXxAdHCAUkqps0sTtVJK+ZwmaqWU8jlN1Eop5XOaqJVSyud8lagzsYl4IuWJY/SE4+IYh5t6RTEi8STPlDSJ6lwrW4PcvqqCgbj7PtAr9jdx09J9ogMMHtp+jC8/tp9Y0n0czx1o5sFtx5yvh/SBENLmnYausOggBoBgNCE+ICMT6zwTz7dXi3jSY8mOOlGM6vZ+Pva7nRka0Sv5LFHLY6Q8S1JYxB+MJugXnM4STaTYW9ctSm6Vrf3cv2I47bIAAAzCSURBVLlW1DSz6nArD22v42hHyDnGI7sb2FAZoLq93znGkh31rC5tpaXX/Xu5b1Mtv1lX7Xw9wLJdDTy+57goRllzn2guAIIDCdGhEpCZda45+s8+ct8ObnuhQhTjhru2UtzQk6ERvZLWUftYPOmJ9nGOJVM0dEW4Ym6Rc4y2vihVbUHeecVs54aC+s4wLX0DvOXSWc7j6AzFiCU95k+f7BxjqOtVDx9QfqQHB0xQ0s3283OyRUkaYN60SaLuSIBFswpZNKtQFEPS5TlEE7SaqHTlKqWUz2miVkopn9NErZRSPqeJWimlfE4TtRpVNJGipdd9H2mAcCwpKjMErflV57ZXXaLOxEbm4VhS1JCQ8izF9d1EE+4NHo3dEf7filJCgnrux/Y0cNX314o2qf/skn285RcbOShoFPnIfTt40882iA5B+MzDe3nPnVucrwdYurOeJ/fK6qhr2vvFL1yReFLU/AO6Yf+J7lhbxaJbV4tiLLp1tS9ijORVl6gzIcsYsgSbkGcZKMjLIVdQDjYlP4fzp08mN9t9HBdMn8zlc6dQkOe+wfzCmQUUTcph2mT3zfIvOq+A6QW5FOS5V4O+Zl4RV10gKzU8f9ok5k6VlRpOzssWl01K15d6pRuvOV8c43Nvv1gcI1t6CsMotOFFKaV8QA8OUEqpCUwTtVJK+ZwmaqWU8rlTJmpjzMPGmIAxpuxMDEgppdQrjeUd9RLg/eM8DqWUUiM4ZaK21m4Fus/AWHwjE5Uwkg3/h0g3qO+NxHm5vE30/ayvaOP/PSer5366pJEfvVAuqh2uagtS0iBbhpF4UnSIAqQf10xs2K/+LBPz4ZcY4yVjn1EbY242xhQbY4o7OjoyFfasSHkWT5ho6zpD/7v/sYvG7gi/eqlKlNwe3d3A5x8toTbgfnDAD1dW8Oju42w+EnCO8f3nyvnjjnr2N7g3zXz9qUN8bqms5HPF/maeP9gsitHRH6NL+AKaifX1atEZinHxd9aIYnzm4b3iGItuXS2OMZ7GVEdtjFkErLLWXjOWoFpHnX51dt1of0jfQELUaNI3kKCkoZt3XznHeSybjgTYcqSDb/7dlRTmuzWsPHegmYrWIN+44UrnZpGa9n5CsSRvWDDD6XqAgXgKY2BSrnsDkOdZjEH82Cp1stHqqDVRK6WUD2jDi1JKTWBjKc97AtgFXGmMaTLG3DT+w1JKKTXklB86Wms/dSYGopRSanj60YdSSvmcJmo1Ks+zhAU11ADJlEckLouh1LnMV4l60a2rueEu2ebwmSItfk+mPFGMRMqjNtAvGkNpUx9feXy/6ACDf35wN3/9o5edm02stdxw11Ze/6N11LS7fz9Ld9Zzx4tVztcDBIJRAv2yk2ZeTTXQi25dLW6qWnTravE6H6/N9l9NfJWoAarb3Zsz/ET6VE6mLLGEe8MMQE8kTlPPAHFB401nKP1E7o0knGN0R9Ix+gXvzJt6IjQLT1aJJTwSSdmcgvyx9ZPjgtN/hkje00SEnaLnCj04QI2qbyBBc88AV18w1TlGR3+M7nCcK+fJTmhR6tVstDpq97OR1Dlh2uRcUXckwOyifGYX5WdoREqde3z30YdSSqlX0kStlFI+p4laKaV8ThO1Ukr5nCZqNapdR7v47cYaUcPK2rJWfruxhrigNM5a+Yb9Sk1UvkrUi25dLS5+z0QMP0h5VnwaSXF9N9/40yFRgvvcI8Xcta6aZ0qanK6PJlJ88bH93LOhhrXlbc7jWLKznrvWVTtfDxBLpkQHMfhJpp4r++rPqcObJixfled9/p2X8MV3XiqKsXjhDJ76/JszNKKzJzvLkJMt25z+mvnT+JgnO8DgH6+dz+YjHbz50plO1+fnZPG3V83lSHs/1y6Y7jyO9101l7CwDT0ny1fvS0SuWziDPwnX+ScWX8QbF52XoRGp8aQNL0op5QN6cIBSSk1gmqiVUsrnNFErpZTPaaJWSimf00StlFI+p4l6GI/vOS5urvBDLbfnWULC01m+9fQhFv9kHVVtQafrrbV8/H92ce2P11HXGXYeRzSR8sUpMYtuXc1D2+tEMZ4/2Eww6r6/tzr3aKIexndXlNLSJzsJBNJNK2dTLOkRE5zuArChMkBPJMHhpj7nMZQc7yEUS1LZ6pbsIb3pf1R4kEKm3L6qQnT9LU8e5MGtxzI0GnUu0DpqNarK1iClTX189Nr55Ga7va7vrO2krivMJ9+4gOwsWROPUq9WenCAcnbV+VO56nz3010A3nLZLN5y2awMjUipc49+9KGUUj6niVoppXxOE7VSSvmcJmqllPI5TdRKKeVzmqjVqFYcaOLjD+zCE9SE//iFCt5952Y9oUUpR1qep0Z12ewi3rhwBoKzB7hu4XSSKU90gIFS5zJteFFKKR/QgwOUUmoC00StlFI+p4laKaV8bkyJ2hjzfmPMEWNMrTHm1vEelFJKqT87ZaI2xmQD9wEfAK4GPmWMuXq8B6aUUiptLO+orwdqrbXHrLVx4Engw+M7LKWUUkPGkqjnA40n/L1p8N9ewRhzszGm2BhT3NHRkanxKaXUOW8siXq4LoW/KL621v7eWrvYWrt49uzZ8pEppZQCxtaZ2ARcdMLfLwRaRrugpKSk0xjTIBnYKGYBneMUO9Mmylh1nJk1UcYJE2es58I4F450wyk7E40xOUA18F6gGdgH/LO1ttxxMCLGmOKRunf8ZqKMVceZWRNlnDBxxnquj/OU76ittUljzFeAl4Bs4OGzlaSVUupcNKZNmay1a4A14zwWpZRSw5iInYm/P9sDOA0TZaw6zsyaKOOEiTPWc3qc47J7nlJKqcyZiO+olVLqnOL7RG2MWW6MOTj4p94Yc3CE+9UbY0oH73fGN8M2xtxmjGk+Yaw3jnC/s75vijHmV8aYKmPMYWPMCmPM9BHud1bm9FRzZNLuGbz9sDHm2jM1thPGcJExZpMxptIYU26MuWWY+7zLGNN3wpr4wZke5+A4Rn0c/TCfg+O48oS5OmiMCRpjvnrSfc7KnBpjHjbGBIwxZSf823nGmHXGmJrB/84Y4Vr5c95aO2H+AL8GfjDCbfXArLM4ttuAb5ziPtnAUeASIA84BFx9FsZ6A5Az+PUdwB1+mdOxzBFwI/Ai6WasNwF7zsIcng9cO/h1EekS1pPH+S5g1Zke2+k+jn6YzxHWQRuw0A9zCrwDuBYoO+HffgncOvj1rcM9jzL1nPf9O+ohJn2O08eBJ872WAR8sW+KtfZla21y8K+7STcx+cVY5ujDwCM2bTcw3Rhz/pkcpLW21Vq7f/DrfqCSYbZWmCDO+nwO473AUWvteDXOnRZr7Vag+6R//jCwdPDrpcBHhrk0I8/5CZOogbcD7dbamhFut8DLxpgSY8zNZ3BcJ/rK4I+OD4/wY9CY9k05wz5L+t3UcM7GnI5ljnw1j8aYRcAbgD3D3PxmY8whY8yLxpjXntGB/dmpHkdfzeegTzLymzI/zCnAXGttK6RfuIE5w9wnI3Pri8NtjTHrgXnD3PQ9a+3zg19/itHfTb/VWttijJkDrDPGVA2+Cp6RcQK/A24n/aS4nfTHNJ89OcQw145L2c1Y5tQY8z0gCTw2Qphxn9NhjGWOztg8nooxZgrwDPBVa23wpJv3k/7RPTT4O4vngMvP9Bg59ePom/kEMMbkAR8CvjPMzX6Z07HKyNz6IlFba9832u2Dbez/CFw3SoyWwf8GjDErSP/IkdGkcqpxDjHG/AFYNcxNp71viqsxzOlngL8H3msHP0wbJsa4z+kwxjJHZ2weR2OMySWdpB+z1j578u0nJm5r7RpjzP3GmFnW2jO6Z8UYHkdfzOcJPgDst9a2n3yDX+Z0ULsx5nxrbevgR0WBYe6TkbmdKB99vA+ostY2DXejMabQGFM09DXpX5aVDXff8XLSZ3ofHeH/vw+43Bhz8eC7hk8CK8/E+E5kjHk/8G3gQ9bayAj3OVtzOpY5Wgn862C1wpuAvqEfQc+Uwd+ZPARUWmt/M8J95g3eD2PM9aSfb11nbpRjfhzP+nyeZMSfnv0wpydYCXxm8OvPAM8Pc5/MPOfP9G9PHX/jugT4wkn/dgGwZvDrS0j/NvUQUE76x/szPcZlQClwePCBOP/kcQ7+/UbSFQJHz8Y4B8dQS/pzs4ODf/7HT3M63BwBXxhaA6R/nLxv8PZSYPFZmMO3kf4R9vAJ83jjSeP8yuDcHSL9S9u3nIVxDvs4+m0+TxhvAenEO+2Efzvrc0r6haMVSJB+l3wTMBPYANQM/ve8wftm/DmvnYlKKeVzE+WjD6WUOmdpolZKKZ/TRK2UUj6niVoppXxOE7VSSvmcJmqllPI5TdRKKeVzmqiVUsrn/j/0Cc9pR9JhNQAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"seen_samples=list()\n", | |
"seen_samples=bayes_printer(*b_runner(), seen_samples);" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"iter_num: 3\n", | |
"sample: -1.057864240124403\n", | |
"max p: (-1, 0.4, 0.12535540004524476)\n", | |
"tot_prob: 1.0\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"seen_samples=bayes_printer(*b_runner(), seen_samples);" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"iter_num: 104\n", | |
"sample: -2.705323126919486\n", | |
"max p: (-2, 3.4000000000000004, 0.2581963561827579)\n", | |
"tot_prob: 1.0000000000000002\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"for i in range(100):\n", | |
" seen_samples.append(b_runner()[2])\n", | |
"seen_samples=bayes_printer(*b_runner(), seen_samples);" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"def whole_process(sample_gen, iterations):\n", | |
" b_runner=bayes_runner(candidates_set(next(sample_gen)), sample_gen)\n", | |
" seen_samples=list()\n", | |
" for i in range(iterations-1):\n", | |
" seen_samples.append(b_runner()[2])\n", | |
" bayes_printer(*b_runner(), seen_samples);" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"iter_num: 201\n", | |
"sample: -4.490178286467965\n", | |
"max p: (-5, 0.8, 0.821328953237222)\n", | |
"tot_prob: 1.0000000000000002\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAWoAAAD7CAYAAABDld6xAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAPVUlEQVR4nO3df5Bd9V3G8efZ3YQQkgo0mxAgsAlTagG1lB1aCFSkgBAYanXqQLXFoRrqyJSOOgriVJyOjtWx0+n0h6aFKSI/ZKQoE0ILVpgIU1I2IQnEJIRgaEMiWVpJIYT82Hz8454tm+Vu7klyz7mf7b5fMzt79p7vPfvM9yxPzj333IMjQgCAvLo6HQAAcGAUNQAkR1EDQHIUNQAkR1EDQHIUNQAk11NmkO1Nkl6TNCRpb0T0VxkKAPCWUkVd+JWIeKWyJACApg6mqEubMWNG9PX1VbFpAPiZtHz58lciorfZurJFHZIeth2S/jEiFh1ocF9fnwYGBg4yJgBMXLZfHGtd2aKeHxFbbM+U9IjtdRGxdNQvWShpoSSddNJJhxwWALC/Uld9RMSW4vs2SfdLOrvJmEUR0R8R/b29TY/eAQCHoGVR2z7K9vThZUmXSHq26mAAgIYypz5mSbrf9vD4uyLi25WmAgD8VMuijogXJP1SDVkAAE3wyUQASI6iBoDkKGoASI6iBoDkKGoASI6iBoDkKGoASI6iBoDkKGoASI6iBoDkKGoASI6iBoDkKGoASI6iBoDkKGoASI6iBoDkKGoASI6iBoDkKGoASI6iBoDkKGoASI6iBoDkKGoASI6iBoDkKGoASI6iBoDkKGoASI6iBoDkKGoASI6iBoDkKGoASI6iBoDkKGoASI6iBoDkShe17W7bT9teXGUgAMD+DuaI+gZJa6sKAgBorlRR2z5R0uWSvlFtHADAaGWPqL8o6U8k7aswCwCgiZZFbfsKSdsiYnmLcQttD9geGBwcbFtAAJjoyhxRz5d0pe1Nku6RdKHtfx49KCIWRUR/RPT39va2OSYATFwtizoiboqIEyOiT9JVkv4zIn678mQAAElcRw0A6fUczOCIeEzSY5UkAQA0xRE1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAci2L2vYU29+3vcr2Gtt/WUcwAEBDT4kxuyRdGBGv254k6XHbD0XEkxVnAwCoRFFHREh6vfhxUvEVVYYCALyl1Dlq2922V0raJumRiFhWbSwAwLBSRR0RQxHxXkknSjrb9hmjx9heaHvA9sDg4GC7cwLAhHVQV31ExKuSHpN0aZN1iyKiPyL6e3t72xQPAFDmqo9e20cXy0dKukjSuqqDAQAaylz1MVvS7ba71Sj2eyNicbWxAADDylz1sVrSmTVkAQA0wScTASA5ihoAkqOoASA5ihoAkqOoASA5ihoAkqOoASA5ihoAkqOoASA5ihoAkqOoASA5ihoAkqOoASA5ihoAkqOoASA5ihoAkqOoASA5ihoAkqOoASA5ihoAkqOoASA5ihoAkqOoASA5ihoAkqOoASA5ihoAkqOoASA5ihoAkqOoASA5ihoAkqOoASA5ihoAkqOoASA5ihoAkmtZ1Lbn2H7U9lrba2zfUEcwAEBDT4kxeyX9UUSssD1d0nLbj0TEf1ecDQCgEkfUEbE1IlYUy69JWivphKqDAQAaDuocte0+SWdKWlZFGADA25UuatvTJN0n6TMR8ZMm6xfaHrA9MDg42M6MADChlSpq25PUKOk7I+JbzcZExKKI6I+I/t7e3nZmBIAJrcxVH5Z0q6S1EfGF6iMBAEYqc0Q9X9LHJV1oe2XxtaDiXACAQsvL8yLicUmuIQsAoAk+mQgAyVHUAJAcRQ0AyVHUAJAcRQ0AyVHUAJAcRQ0AyVHUAJAcRQ0AyVHUAJAcRQ0AyVHUAJAcRQ0AyVHUAJAcRQ0AyVHUAJAcRQ0AyVHUAJAcRQ0AyVHUGBdWb35Vdy37wWFt44FVW/T4hlfalAioT8v/uS2QwZVffkKS9LH3n3TI2/j03U9Lkjb9zeVtyQTUxRHR9o329/fHwMBA27cLAD+rbC+PiP5m6zj1AQDJUdQAkBxFDQDJUdQAkBxFDQDJUdQAkBxFjXGh78YH1Xfjgx3fBtAJFDUAJMcHXgAgAT7wAgDjGEUNAMlR1ACQXMuitn2b7W22n60jEABgf2WOqL8p6dKKcwAAxtCyqCNiqaQf15AFANAE56gxbrTjUtIqLkcFqta2ora90PaA7YHBwcF2bRaQ1L6Ctd2W7QB1altRR8SiiOiPiP7e3t52bRaQ1ChYShYTFac+ACC5lv9zW9t3S7pA0gzbmyX9RUTcWnUwQJLWbNmury99Qf+14RVFSO896Whd98F5ev+8d3Y6GlCblkUdEVfXEQQY7Y7vbdJfLVmrPXtDQ8U56kfXbdP3Nv5IHz/nZP3Zgvd0NiBQE059IKWnf/B/+usla/Xmnn0/LWlJCkk79wzpjidf1OLVW0pv7809Q3p0/TYtfW5Qu/fuqyAxUJ2WR9RAJ3ztsY168wCFunP3kL703Q264hePb7mtN3bv1ZVffkJbt++UQprXe5T+9ffP1RE93e2MDFSGI2qkNHxO+kBeGNyh197c03Jb9614SZt//IZ27BrSjt1D2ji4Q0ue2dqmpED1KGqkNFTiuukuW3uHWo/buXuvhva9NW5fhHbsGjqsfECdKGqkdOrMaS3HTJvSo587clLLcZedMVuTJ3XLkrosTe7u0sWnzWpDSqAeFDVSuu6XT9HUyWOfQ57S06Vr5/epq6v1h2DmHDtVD1w/X9ec26ffOXeuHvz0+Zr1jintjAtUijcTkdLlvzBbi1dv0dLnBrVzz/5vKh7R06VTj5uu3z1/XuntndI7TbdceXq7YwK14IgaKXV1WV/9rbP0hxefqhnTJuvISd2aOrlb06f06JPnzdW9152jKZO4agMTA0fUSKu7y/q9D56iT543Ty+9ulND+0InHHOkJnVzfIGJhaJGel1d1pxjp3Y6BtAxHJpgXPj2s/+re5/6IfeTxoTEETXS27p9p/7grhXqttU34yidPffYQ9rOncte1OTuLn20f06bEwLVoqiR3jFTJ+vds6Zr+87dmtd71CFv56yTj1FPFy8iMf5Q1EhvyqRuLbnh/MPezs8f9442pAHqx+EFACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAchQ1ACRHUQNAcqWK2valttfbft72jVWHAgC8pWVR2+6W9BVJl0k6TdLVtk+rOhgAoKHMEfXZkp6PiBciYrekeyR9uNpYAIBhZYr6BEk/HPHz5uIxAEANyhS1mzwWbxtkL7Q9YHtgcHDw8JMBACRJPSXGbJY0Z8TPJ0raMnpQRCyStEiSbA/afrEtCd9uhqRXKtp2u42XrORsr/GSUxo/WSdCzpPHWuGItx0c7z/A7pH0nKQPSXpJ0lOSPhYRaw4xzGGxPRAR/Z343QdrvGQlZ3uNl5zS+Mk60XO2PKKOiL22r5f0HUndkm7rVEkDwERU5tSHImKJpCUVZwEANDEeP5m4qNMBDsJ4yUrO9hovOaXxk3VC52x5jhoA0Fnj8YgaACaUlEVt+6O219jeZ7t/xOMX215u+5ni+4VjPP8W2y/ZXll8LagzZ7HupuLeKOtt/+oYzz/W9iO2NxTfj6kiZ5Pf+y8j5maT7ZVjjNtUzPVK2wN1ZBv1+0vtx07fi8b239leZ3u17fttHz3GuI7MZ6v5ccOXivWrbb+vrmyjcsyx/ajttcV/Vzc0GXOB7e0j/iY+26GsB9yXbZ/TiEj3Jek9kt4t6TFJ/SMeP1PS8cXyGZJeGuP5t0j64w7mPE3SKklHSJoraaOk7ibP/1tJNxbLN0r6fAfm+u8lfXaMdZskzejg30HL/ajGlUgbJc2TNLmY99NqznmJpJ5i+fNj7cdOzGeZ+ZG0QNJDany47QOSlnVof8+W9L5ieboalwWPznqBpMWdyHcw+7Ldc5ryiDoi1kbE+iaPPx0Rwx+2WSNpiu0j6k23X56mOdW4F8o9EbErIv5H0vNq3DOl2bjbi+XbJf1aNUmbs21Jvynp7jp/b5t1/F40EfFwROwtfnxSjQ+FZVFmfj4s6Z+i4UlJR9ueXXfQiNgaESuK5dckrdX4vV1FW+c0ZVGX9BuSno6IXWOsv754yXFbXacURih7f5RZEbFVavyRSppZQ7aRzpf0ckRsGGN9SHq4OM20sMZcI7Xaj9nuRXOtGkdSzXRiPsvMT7Y5lO0+NV5BL2uy+hzbq2w/ZPv0WoO9pdW+bOuclrqOugq2/0PScU1W3RwR/97iuaer8RLzkjGGfE3S59SYzM+p8fL+2hpzlro/SpVK5r5aBz6anh8RW2zPlPSI7XURsbSunCq3H2uZ6zLzaftmSXsl3TnGZiqfzybKzE/H/15Hsj1N0n2SPhMRPxm1eoWkkyPi9eI9i3+T9K66M6r1vmzrnHasqCPiokN5nu0TJd0v6RMRsXGMbb88YvzXJS0+pJA65Jyl7o8i6WXbsyNia/GyaNuhZGymVW43bg3w65LOOsA2thTft9m+X42X0W0tlrLze4D9WHauD0uJ+bxG0hWSPhTFScom26h8PpsoMz+1zGEZtiepUdJ3RsS3Rq8fWdwRscT2V23PiIha7wNSYl+2dU7H1amP4t30ByXdFBFPHGDcyHNBH5H0bNXZRnlA0lW2j7A9V41/8b8/xrhriuVrJB3wlUSbXSRpXURsbrbS9lG2pw8vq/HqpdZ5LLkfn5L0LttzbU+WdJUa81ob25dK+lNJV0bEG2OM6dR8lpmfByR9orhS4QOStg+fkqtT8Z7JrZLWRsQXxhhzXDFOts9Wo8N+VF/K0vuyvXPa6XdPx3jH9CNq/Iu0S9LLkr5TPP7nknZIWjnia2ax7hsqrryQdIekZyStLiZsdp05i3U3q/Fu+3pJl414fGTOd0r6rqQNxfdja5zjb0r61KjHjpe0pFiep8YVAqvUeOP25g78HTTdjyNzFj8vUOMKgY0dyvm8Gucjh/8m/yHTfDabH0mfGt7/arxM/0qx/hmNuIKp5nk8T43TA6tHzOWCUVmvL+ZvlRpv3J7bgZxN92WVc8onEwEguXF16gMAJiKKGgCSo6gBIDmKGgCSo6gBIDmKGgCSo6gBIDmKGgCS+38ORNYV7y/GwgAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"whole_process(normal_dev_dist(\n", | |
" *(-4.5, 0.5),\n", | |
" normal_dist(uniform_dist())), 200);" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"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.8.2" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 4 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment