Skip to content

Instantly share code, notes, and snippets.

@jsmorph
Created November 30, 2018 16:04
Show Gist options
  • Save jsmorph/6607dba05f16861fc4a2f61fd6dffc2b to your computer and use it in GitHub Desktop.
Save jsmorph/6607dba05f16861fc4a2f61fd6dffc2b to your computer and use it in GitHub Desktop.
Callilbration notes
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Notes on model calibration"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"from matplotlib import pyplot as plt\n",
"%matplotlib inline\n",
"import seaborn as sns"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Our model *M* will emit some samples for *p* based on the given *a*."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def M(a,samples=10):\n",
" return np.random.normal(0.2,0.3,samples)+a"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Example run:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nLLkbY0wE+v+NL9p/ndfWKAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0xc482278>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"a = 0.5\n",
"sns.distplot(M(a,1000))\n",
"plt.title(f\"A distribution of p for a={a}\");"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We'll use a very inefficient approach to accumulate data that will allow us to sample from a posterior distribution of *a* -- sort of.\n",
"\n",
"We'll accumulate the necessary data in `samples`."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"samples = []"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here *A* represents our random variable *a*. All that we require is to be able to sample it."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def runMore(A,n):\n",
" \"\"\"Add n records of the form [a,p] to the samples global variable.\"\"\"\n",
" global samples\n",
" a = A()\n",
" samples = samples + [[a,p] for p in M(a,n)]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here's our example prior for *A*."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"A = lambda: np.random.normal(0,1,1)[0]\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's generate some data that we'll later use for posterior a sampling."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"for i in range(100):\n",
" runMore(A, 1000)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"100000"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(samples)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What does that data look like? We have records of the form `[a,p]`."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0xc83a7f0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df = pd.DataFrame(samples, columns=[\"a\",\"p\"])\n",
"sns.scatterplot(x=\"a\",y=\"p\",data=df)\n",
"plt.title(f\"A vs P in current accumulated samples\");"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We see that *p* tends to increase as *a* increases. No surprise here because that's what our example model *M* does."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's define our target distribution for *p*. Our goal here is to be able to sample *a* such that we're likely to see corresponding *p*s according to our target distribution."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"T = lambda: np.random.normal(1,0.3,1)[0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Finally we define what we're after.\n",
"\n",
"(The `binwidth` parameter helps us move backwards from *p* samples to *a* samples. If we're dealing with nasty distributions, then `binwidth` should be small (in some sense).)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"def samplePosteriorA(binwidth=0.002):\n",
" def inbin(p,t,binwidth):\n",
" return t <= p and p < t + binwidth\n",
" t = T()\n",
" xs = [s[0] for s in samples if inbin(s[1],t,binwidth)]\n",
" mean = np.array(xs).mean()\n",
" n = len(xs)\n",
" print(f\"{n} a samples with mean {mean}\")\n",
" return xs"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's look at a few *a* samples."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"57 a samples with mean 0.49591059853179875\n"
]
},
{
"data": {
"image/png": "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\nT6lKLAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0xc83aa58>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.distplot(samplePosteriorA())\n",
"plt.title(f\"A distribution of posterior a\");"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It's not easy to tell if our gear is doing the right thing. We need to look at *p* based on our posterior (in a sense) *a*."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"def sampleP(a_samples=10, p_samples=10, binwidth=0.002):\n",
" ps = [p for i in range(a_samples) for a in samplePosteriorA() for p in M(a,p_samples) ]\n",
" n = len(ps)\n",
" print(f\"Got {n} p samples from {a_samples} a samples.\")\n",
" return ps"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's take a few *a* samples again and see what kind of *p* we get."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"38 a samples with mean 1.0826540903166517\n",
"57 a samples with mean 0.5924557309654325\n",
"44 a samples with mean 0.8112987628433092\n",
"57 a samples with mean 0.6473726000781673\n",
"50 a samples with mean 0.6856213693561344\n",
"26 a samples with mean 1.1625944677487001\n",
"41 a samples with mean 0.8723269441938469\n",
"43 a samples with mean 0.8065307752939335\n",
"84 a samples with mean 0.3187202181642593\n",
"20 a samples with mean 1.3627211639080856\n",
"Got 4600 p samples from 10 a samples.\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0xc83a400>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"an = 10\n",
"sns.distplot(sampleP(a_samples=an))\n",
"plt.title(f\"A distribution of p from {an} a samples\");"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Pretty smooth, which isn't surprising since our model and distributions are so simple. But let's see if we can increase the convergence (in a sense) with more data."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"for i in range(300):\n",
" runMore(A, 1000)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"247 a samples with mean 0.738036789438405\n",
"239 a samples with mean 0.6953684750851159\n",
"291 a samples with mean 0.5071031970948875\n",
"319 a samples with mean 0.487765148005657\n",
"273 a samples with mean 0.5584112598580167\n",
"63 a samples with mean 1.476785047815691\n",
"282 a samples with mean 0.5813217246299783\n",
"259 a samples with mean 0.6337935674480483\n",
"255 a samples with mean 0.6541867778139158\n",
"243 a samples with mean 0.6867872224397059\n",
"Got 24710 p samples from 10 a samples.\n"
]
},
{
"data": {
"image/png": "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\ncldKqQT0fwF0vD8bx/t+tAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0xf55a7f0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"an = 10\n",
"ps = sampleP(a_samples=an)\n",
"sns.distplot(ps)\n",
"n = len(ps)\n",
"plt.title(f\"A sample of {n} p based on {an} a samples\");"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What's our estimated expected *a*?"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"295 a samples with mean 0.21629069337314588\n",
"256 a samples with mean 0.7018497085930896\n",
"251 a samples with mean 0.7223710737526847\n",
"89 a samples with mean 1.377393521271098\n",
"162 a samples with mean 0.9533150810507628\n",
"211 a samples with mean 0.7875749215935045\n",
"245 a samples with mean 0.680892725649167\n",
"306 a samples with mean 0.5247832811280906\n",
"118 a samples with mean 1.1892186356477858\n",
"214 a samples with mean 0.7433664572376397\n"
]
},
{
"data": {
"text/plain": [
"0.69623121429946377"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"eva = np.array([a for i in range(10) for a in samplePosteriorA()]).mean()\n",
"eva"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"That's interesting because the mean of our prior was 0. Our model added a little mostly positive noise to *a*, and our target *p* distribution has a mean of 1. So the number above looks reasonable.\n",
"\n",
"In production, if we don't want to sample from *a*, we could instead just uses this approximation of the expected value of *a*. Here's the distribution of the resulting *p*."
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0xfd5f780>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.distplot(M(eva,10000))\n",
"plt.title(f\"A sample of p based on ~EV(a)={eva}\")\n",
"plt.xlim(-1,3);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For reference, here's our target *p* again."
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0xfda97b8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.distplot([T() for i in range(10000)])\n",
"plt.title(f\"A sample p from the target distribution for p\")\n",
"plt.xlim(-1,3);"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"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.6.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment