Improved wording, and removal of plt.show() calls.

I used plt.show() to elimiante the <Matplotlib....>  messages
on the output line, but using a ; on the last statement also
suppresses this data. Shorter code  is better.
This commit is contained in:
Roger Labbe committed 2015-07-09 10:41:57 -07:00
1 parent 25a1c29e9e
commit 6cc83b462e
1 file changed
+50 -53
+50 -53
View File
@@ -458,7 +458,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x6b6a6a0>"
"<matplotlib.figure.Figure at 0x73ad630>"
]
},
"metadata": {},
@@ -493,7 +493,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x7bb3048>"
"<matplotlib.figure.Figure at 0x83f20b8>"
]
},
"metadata": {},
@@ -680,7 +680,7 @@
"data": {
"image/png": "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\nEhkAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7be3ba8>"
"<matplotlib.figure.Figure at 0x841fe80>"
]
},
"metadata": {},
@@ -695,8 +695,7 @@
" plt.plot([i ,i], [m, x[i]], color='k')\n",
" plt.axhline(m)\n",
" plt.xlim(-1, len(x))\n",
" plt.tick_params(axis='x', labelbottom='off')\n",
" plt.show()"
" plt.tick_params(axis='x', labelbottom='off')"
]
},
{
@@ -775,7 +774,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x7be7588>"
"<matplotlib.figure.Figure at 0x8423358>"
]
},
"metadata": {},
@@ -812,7 +811,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x7d2deb8>"
"<matplotlib.figure.Figure at 0x856cd68>"
]
},
"metadata": {},
@@ -850,7 +849,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x7cc4b38>"
"<matplotlib.figure.Figure at 0x851a048>"
]
},
"metadata": {},
@@ -930,7 +929,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAuAAAAEtCAYAAABJQNX+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcVOXiBvBnZlgERBTZF9llEUQFEXFXRAV3c0nLNM3l\npqWWmWW3utfb75ZlZje1xdSs3HFHhVRwwQ0VFVBB2ZVdBFlkmZnfH9RREgEVODPwfD8fP5/ed84M\nD3cu8HA4530lSqVSCSIiIiIiahJSsQMQEREREbUkLOBERERERE2IBZyIiIiIqAmxgBMRERERNSEW\ncCIiIiKiJsQCTkRERETUhFjAiYiIiIiaUL0K+Jo1a2BnZwcdHR14e3vj1KlTTz02PDwco0aNgoWF\nBfT09ODp6YkNGzY8cVxERAS8vLygo6MDBwcHfP/998//WRARERERqYk6C/i2bduwYMECLFu2DNHR\n0fDz88OwYcOQlpZW4/FnzpyBp6cndu3ahdjYWMydOxezZs3Cli1bhGOSkpIQGBiI3r17Izo6GkuX\nLsX8+fMRHBzccJ8ZEREREZEKktS1E2aPHj3QpUuXameoO3bsiJdeegmfffZZvT7IxIkTIZfLsXPn\nTgDAkiVLsGfPHty8eVM45o033kBsbCwiIyOf5/MgIiIiIlILtZ4BLy8vx6VLlxAQEFBtPiAg4JmK\nckFBAQwNDYXxmTNnanzNqKgoyOXyer8uEREREZG60ajtwdzcXMjlcpiamlabNzExQWZmZr0+wIED\nB3Ds2LFqhT0rK+uJ1zQ1NUVlZSVyc3OfeIyIiIiIqLmotYC/qNOnT2PKlCn49ttv4e3t/czPLygo\naIRURERERERNw8DA4Im5Wi9BMTIygkwmQ1ZWVrX5rKwsmJub1/rBTp06hcDAQPz73//G7Nmzqz1m\nZmb2xBn0rKwsaGhowMjIqNbXJSIiIiJSZ7UWcC0tLXh5eSE0NLTafFhYGPz8/J76vBMnTiAwMBCf\nfvop3nrrrSce79mzJ8LCwp54ze7du0Mmkz1LfiIiIiIitVLnJSiLFi3Cq6++Ch8fH/j5+WHdunXI\nzMzEnDlzAABLly7FhQsX8McffwCoWgc8KCgI8+bNw8svvyyc6ZbJZDA2NgYAzJkzB//73/+wcOFC\nzJo1C6dPn8amTZuwdevWp+ao6fT946KiogDguS51IXHxvVNffO+ajlKpRGrWLZy/fhwX40+i5OGD\npx6rIdOEWXtrWLa3hblRBxjqm6CtvhHatTaCno4+NGSaAACJ5PHXB8orylBUWoAHJfeR/yAX2fl3\nkH3/LjLyUnEnNxkKxdNvkjfQM0TXjr3h7dwX1iYOkDz+4tTg+LWn3vj+qa/6vnd1XUZdZwGfMGEC\n8vLysHz5cmRkZMDDwwMhISGwtrYGAGRmZiIxMVE4ftOmTXj48CFWrFiBFStWCPO2trbCcba2tggJ\nCcHChQuxdu1aWFpa4ttvv8WYMWPqikNE1KKUlpXg/PVjOH3tCDLv1bz/QistXThaucPR0g0OFp1g\nZWIPmfTZ/5qopakNQ00TGLYxgY1Zx2qPlVeWIT07CcmZNxCfehUJ6TGokJcLjxcU30P45X0Iv7wP\nVib26O0xDF7OfaCt2eqZcxARNXd1rgMupsd/e+AZ8OaL75364nvXeHLuZ+DElYM4G3cUZeWlTzze\ntnV7dHboAQ/7HnCwdBPOaj+Lv58BfxbllWW4fScO126fw+VbkSguLXzimFZauvBzD8CAriNh0Nqw\nhleh58WvPfXG9099Pc8Z8Jo6bKOugkJERM8m534GjpzfjqgbEVAoFdUe09JshS6OPeHjOhCOVp0g\nldS5mXGj0dLQhqtNV7jadMW4/m8gPu0qom5EIDohUjgz/rC8BMcu7UHElQPo4ToAg7zGwrht7Tfw\nExG1BCzgREQqoLbibdrOCn27BMHHpT+0tXRESvh0MqlMKONj+83AubiqS2Zy7t8FAMjllYiMCcPZ\n2KPw7eSPYT0m8Yw4EbVoLOBERCIqfvgAh89tw8mrh564ybGjdWcM8hoD5w6eop7tfhZ6rfQxsNso\n9O86ArFJUQi7sAvJmTcBAAqlApExobhwIxz9u4zAIO8x0NVuLXJiIqKmxwJORCQCubwSp2OOIOTs\n1idWNHG29sTQHhPhYOkmUroXJ5VI4WHvA3e77rh9Nw6Hz25FfPo1AEBFZTnConbhdEwoRvi9gp7u\ng9XmFwwioobAAk5E1MRu3YnF9mPrnljVxNGyE4J6TlHr4v13EokEjpad8ObYf+FGajT2n96M9Jyq\nFbFKHj7AtmNrcTbuKCYMmA1rEweR0xIRNQ0WcCKiJlJaVox9p37B6Zgj1ebbtzHF6D7T0NnBt9mu\nny2RSOBq0xXOHTxxOf409kduxr3CbABASmY8vty6GH06D0VQz1ego60rcloiosbFAk5E1ASu3j6L\n7ce/R2FxvjCnrdkKAT4T0L/LcGhqaImYrulIJVJ4OfeBh4MPwi7swh8XgyGXV0KpVODElRBcS7yA\nKYPno6N1Z7GjEhE1GhZwIqJGVFpWjB3Hf0DUzYhq8+72Phjffxba6RuJlExcWhraCOo5Gd1d+mNn\n+A+4kRoNAMh/kIP/Bf8TfToHYmTvqdzIh4iaJRZwIqJGcvtOLDYfWYV7D3KEOX3dtnip/yx0cezZ\nbC83eRYm7Swwd/THuBR/EjvCfxRuSD15NQRxKRcxdchC2Jm7iJySiKhhsYATETUwubwSh85tRVhU\nMJSPrent4zoAY/q+Dr1W+iKmUz0SiQRezn3haOWObUfXIibpAgAgryAL3+z4AMP9XsFAr9FcKYWI\nmg0WcCKiBpT/IBcbDq1AcsZNYU5XuzUmDpqLrk69REym+gz0DPHGiA9w4UY4doX/iNLyEiiUCuw7\n/Qvi06/h1YC3oa/bVuyYREQvjKcTiIgayM3UK/hiy6Jq5bujlQeWTFnF8l1PEokEPq4DsGTKKtia\nOQvzN1Iu4/PfFyIhPUbEdEREDYMFnIjoBSmUChw5vwNrdn+C4tJCAFWrfYzoNRX/GPtpi73R8kUY\ntjHB2y/9B/5eY4W5wuJ8fBf8T0REH4BSqRQxHRHRi+ElKEREL+BheSl+OfI1YhLPC3NtdNthWuC7\ncLTsJGIy9SeTaWBk76lwtHLHr6HfoKi0AAqlArsifkJa9m1MHDi3xSzfSETNC8+AExE9p3uF2Vi1\n/f1q5dvBwg2LJ3/F8t2A3Gy7YfHLX6GDqZMwd/76cXyz4wPkP7bCDBGRumABJyJ6DkkZN/DV1sW4\nm5cizA3oOhLzxv4LBnqGIiZrntrpG+Htl/6DHm6DhLnU7Fv4aut7SM26JWIyIqJnxwJORPSMLtwI\nx+pdy/CgtAAAIJNqYMrg+RjT93XIZLyyr7Foamhhsv88vNR/FqRSGQCgsCQfq3d+iGuP/RWCiEjV\nsYATEdWTUqlEyJkt2HxkFeTySgCAXit9zBv7abUzs9R4JBIJ+noG4s0xn0BHWw8AUF5Zhp8O/Bcn\nroSInI6IqH5YwImI6kGukGPbsTU4fH6bMGdmaI13Jq2AA6/3bnJOVh5YOOG/aN/GFACgVCqwM/wH\nBJ/4GQqFXOR0RES1YwEnIqpDeWUZfj74OSJjwoQ5F5uuWDjhvzAyMBMxWctmZmiNRRM/h81jN2eG\nX96HjYe/QkVlhYjJiIhqxwJORFSLkodFWLP7k2rXGHd36Y/ZIz4ULoEg8ejrtsX8ccvR2cFXmItO\niMSP+/+DsoqHIiYjIno6FnAioqcoKLqHb3Z+gMS714W5QV6jMSXgLd5sqUK0NLXxeuBi9OsyXJi7\nkRqN73Z/jJKHRSImIyKqGQs4EVEN7hVmY9XOpcjISxXmRveZjlG9p0Eq4bdOVSOVyjC27wwM6zFJ\nmEvOuInVu5ahsDhfxGRERE/iTxEior/JuZ+Bb3Z+iLyCLABV5e7VIQsxsNsokZNRbSQSCYb5TsLY\nvjOEubu5yVi1YynyCrNETEZEVB0LOBHRYzLvpeGbnY92WJTJNDAjaAm6u/QTORnVV/+uI/BKwNvC\nXypyCzKxeucy4RcqIiKxsYATEf3pTk4yVu98dMmCpoYWZo34EB72PiIno2fl4zoArwctgYZMEwCQ\n/yAHq3d+iNyCTJGTERGxgBMRAQDScxLxbfBHKPpzd0stzVaYM+qfcLXpKnIyel6dHXrgjREfPCrh\nRblYvfND5NzPEDkZEbV0LOBE1OLdzU3Gd8Efo+ThAwBAKy1dvDnmEzhZuYucjF6Uq01XzBrxITRl\nWgCA+0V5WL1rGbLz74qcjIhaMhZwImrRsu6l47vgj1H8Z/nW0dbDvLH/gp25i8jJqKG42HTBrJEf\nQlOjqoQXFOXhW5ZwIhIRCzgRtVjZ+XfxbfBHePDnZSettHTxj9GfoIOpo8jJqKE5d/DE7JHLHpXw\n4nv4LvifuFeYLXIyImqJWMCJqEXKK8jC/4I/Em64/OuabxszpzqeSeqqo3VnzBn1kVDC84ty8V3w\nxygovidyMiJqaVjAiajFuVeYg293LcP9ojwAVaudzBn1EewteNlJc+dk5YGZw5cKO5nmFGRgze5P\nUFRaKHIyImpJWMCJqEUpLL5fdenBn+t8a8g0MWvEh3C07CRyMmoqrjZdMX3YYmGd8Iy8VKzd8ylK\ny4pFTkZELQULOBG1GKVlxVi391/IKahahk4m08DM4Uvh3MFT5GTU1Do79MCrQxZAAgkAIC37Nr7f\nuxxlFQ9FTkZELQELOBG1CBWV5fhx/2dIz0kEAEgkUkwb+i7cbLuJnIzE4uXcF5MG/UMYJ2Zcx08H\n/g+V8goRUxFRS8ACTkTNnlwhx8ZDX+LWnVhhbtKgf8DT0VfEVKQKeroPxti+M4TxzLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x7b9ee80>"
"<matplotlib.figure.Figure at 0x83dddd8>"
]
},
"metadata": {},
@@ -1015,7 +1014,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Since this is a probability density distribution it is required that the area under the curve always equals one. This should be intuitively clear - the area under the curve represents all possible occurrences, which must sum to one. We can prove this ourselves with a bit of code. (If you are mathematically inclined, integrate the Gaussian equation from $-\\infty$ to $\\infty$)"
"Since this is a probability density distribution it is required that the area under the curve always equals one. This should be intuitively clear - the area under the curve represents all possible outcomes, *something* happened, and the probability of *something happening* is one, so the density must sum to one. We can prove this ourselves with a bit of code. (If you are mathematically inclined, integrate the Gaussian equation from $-\\infty$ to $\\infty$)"
]
},
{
@@ -1058,7 +1057,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x7c7a080>"
"<matplotlib.figure.Figure at 0x84b1dd8>"
]
},
"metadata": {},
@@ -1073,8 +1072,7 @@
"plt.plot(xs, gaussian(xs, 23, 0.2), label='var=0.2')\n",
"plt.plot(xs, gaussian(xs, 23, 1), label='var=1')\n",
"plt.plot(xs, gaussian(xs, 23, 5), label='var=5')\n",
"plt.legend()\n",
"plt.show()"
"plt.legend();"
]
},
{
@@ -1085,7 +1083,7 @@
"\n",
"If we think back to the thermometer, we can consider these three curves as representing the readings from three different thermometers. The blue curve represents a very accurate thermometer, and the black one represents a fairly inaccurate one. Green of course represents one in between the two others. Note the very powerful property the Gaussian distribution affords us - we can entirely represent both the reading and the error of a thermometer with only two numbers - the mean and the variance.\n",
"\n",
"It is worth spending a few words on standard deviation now. The standard deviation is a measure of how much variation from the mean exists. For Gaussian distributions, 68% of all the data falls within one standard deviation($1\\sigma$) of the mean, 95% falls within two standard deviations ($2\\sigma$), and 99.7% within three ($3\\sigma$). This is often called the 68-95-99.7 rule. So if you were told that the average test score in a class was 71 with a standard deviation of 9.4, you could conclude that 95% of the students received a score between 52.2 and 89.8 if the distribution is normal (that is calculated with $71 \\pm (2 * 9.4)$). "
"It is worth spending a few words on standard deviation now. The standard deviation is a measure of how much variation from the mean exists. For Gaussian distributions, 68% of all the data falls within one standard deviation ($1\\sigma$) of the mean, 95% falls within two standard deviations ($2\\sigma$), and 99.7% within three ($3\\sigma$). This is often called the 68-95-99.7 rule. So if you were told that the average test score in a class was 71 with a standard deviation of 9.4, you could conclude that 95% of the students received a score between 52.2 and 89.8 if the distribution is normal (that is calculated with $71 \\pm (2 * 9.4)$). "
]
},
{
@@ -1106,7 +1104,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x7cdb630>"
"<matplotlib.figure.Figure at 0x8516ef0>"
]
},
"metadata": {},
@@ -1123,7 +1121,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"> An equivalent formation for a Gaussian is $\\mathcal{N}(\\mu,1/\\tau)$ where $\\mu$ is the *mean* and $tau$ the *precision*. Here $1/\\tau = \\sigma^2$; it is the reciprocal of the variance. While we do not use this formulation in this book, it underscores that the variance is a measure of how precise our data is. A small variance yields large precision - our measurement is very precise. Conversely, a large variance yields low precision - our belief is spread out across a large area. You should become comfortable with thinking about Gaussians in these equivalent forms. Gaussians reflect our *belief* about a measurement, they express the *precision* of the measurement, and they express how much *variance* there is in the measurements. These are all different ways of stating the same fact.</div>"
"> An equivalent formation for a Gaussian is $\\mathcal{N}(\\mu,1/\\tau)$ where $\\mu$ is the *mean* and $tau$ the *precision*. Here $1/\\tau = \\sigma^2$; it is the reciprocal of the variance. While we do not use this formulation in this book, it underscores that the variance is a measure of how precise our data is. A small variance yields large precision - our measurement is very precise. Conversely, a large variance yields low precision - our belief is spread out across a large area. You should become comfortable with thinking about Gaussians in these equivalent forms. For a Bayesian Gaussians reflect our *belief* about a measurement, they express the *precision* of the measurement, and they express how much *variance* there is in the measurements. These are all different ways of stating the same fact.</div>"
]
},
{
@@ -1151,7 +1149,7 @@
"data": {
"image/png": "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\njjBsExERERHpCMM2EREREZGOMGwTEREREekIwzYRERERkY4wbBMRERER6QjDNhERERGRjjBsExER\nERHpCMM2EREREZGOMGwTEREREelIv8L25s2b4e3tDRMTE0RGRiI1NbXPfT755BMEBATA2NgYLi4u\nWLNmzT0XS0REREQ0khj01WH37t147bXXkJCQgNjYWGzatAlz585Ffn4+3N3de9xn9erV2L9/P/77\nv/8bISEhqKurQ1VV1aAXT0REREQ0nPUZtjdu3IgVK1bghRdeAAB89tlnOHjwIBISErB+/fpu/YuK\nivA///M/OHfuHPz9/TXtoaGhg1g2EREREdHw1+swEqVSiezsbMTHx2u1x8fHIy0trcd9vv32W/j4\n+CApKQk+Pj7w9vbGc889h2vXrg1e1UREREREI0CvZ7ZramqgUqng6Oio1e7g4AC5XN7jPjKZDGVl\nZdizZw/++c9/AgDeeOMNPPzww0hPT4dIJOpxv6ysrLupn4YZHsfRgcdx9OCxHD14LEcPHsuRz9fX\nt999+xxGMlBqtRptbW3YsWMHxo0bBwDYsWMH/P39kZWVhUmTJg32WxIRERERDUu9hm07OztIJBIo\nFAqtdoVCAWdn5x73cXZ2hoGBgSZoA8C4ceMgkUhw5cqVO4btyMjIgdZOw8itv9J5HEc2HsfRg8dy\n9OCxHD14LEePurq6fvftdcy2kZERIiIicOjQIa325ORkxMTE9LhPbGwsOjo6IJPJNG0ymQwqlQqe\nnp79LoyIiIiIaKTrc57t1atXY9u2bfjiiy9QUFCAV199FXK5HC+99BIAYM2aNZg9e7am/+zZsxEe\nHo7nn38eubm5yMnJwfPPP48pU6bwLzkiIiIiuq/0OWZ76dKlqK2txbp161BVVYWQkBAkJSVp5tiW\ny+VaZ7FFIhF++OEH/P73v8f06dNhYmKC+Ph4bNy4UXefgoiIiIhoGOrXDZKrVq3CqlWretyWmJjY\nrc3JyQl79uy5t8qIiIiIiEa4fi3XTkREREREA8ewTURERESkIwzbREREREQ6wrBNRERERKQjDNtE\nRERERDrCsE1EREREpCMM20REREREOtKvebaJiGhkEQQBgqDWdxlERPc9hm0iohGgpa0JlTVlaGi+\niea2JrS0NaK5tVHzuKm1AS2tTWhu62prbYQAAXsypTAxNoep1AymUvOeHxubw1RqDjtrZ9hbO0Ms\n4kVPIqLBwrBNRDTMNLU2oLxahqvVJbhaXYLyahmu1VXd1WspO9qgbGxDXWNtv/pLDY3hZu8Dd4ex\ncHPwgbvDODjauEAsltzV+xMR3e8YtomI9Kihua4rUHcG66vXZLheXz0ory2CCAKEAe3T1t6Kksp8\nlFTma9qMDKRwsfeCh8NYuNmPhbvDWDjZukEi4a8QIqK+8CclEdEQEgQBV6tLcLYkA3klGVBcL+/X\nfmKxBE627hhj6aAZAmJmbA4T6c9DQUyk5l1DQsyQf74IYpEYIaHju4abNKC5tfvwk1uPG1vqUFlT\nhsaWum7vrexoQ2lVEUqrijRtRgZSBHiGIXTcFAR7R8JUaj5o/42IiEYThm0iIh1TqVWQVebjbMkp\nnL2UgRuNNb32l0gM4DLGE+5dwzjc7H3gYucJQwOjfr+npGvYh7GRCYyNTGAL+z73EQQBNxtrUX5N\newhLXdP1bn2VHW04W5KBsyUZEIsl8HUbj9Cx0QgZGwUrM9t+10lENNoxbBMR6UB7hxJFV/KQV5KB\n87LTaGpt6LGfgcQQrvbecNeMkx4L5zHuMJAYDnHFgEgkgo2FHWws7BDiE6Vpr2+60Rm8b4VwRYnW\nHwxqtQpFV/JQdCUPe49ugaezH0LHTsGEsVNgb+085J+DiGg4YdgmIhok7R1KnJOdRu6lNBSUZqOt\nvbXHfiZSM4z3noQJY6cg0DMMRobSIa50YCzNbBDsHYlg70hNm+J6OfJKMnD2UgauVF/StAsQNENO\nvk3dDpcxnpgwdgrC/WPhZOuuj/KJiPSKYZuI6B5dr7+Gk+cOIu1CMppa6nvsY2lmgwk+kxE6Lhrj\nXINH/M2FjrZuiLddjPhJi3Gj4VrnEJmSUyipuAD1bfN7V9aWobK2DAdP74afWwimT5yPYO9JmmEu\nRESj3cj+aU9EpCeCIKC4/BxS8pJwTna6xwVk7K2cMWFc53AKTyffUTt/tY2FPWZMXIAZExegsaUe\n52WZOFuSgcIruehQtWv6XSw/h4vl52BjYY/YkIcQPX4OzE0s9Vg5EZHuMWwTEQ1Am7IFpwuP4URe\nEuTXr3bbbmNuhynBsxE6LhrOYzwgEon0UKX+mJtYYkrwA5gS/ADalC3IL8vGmaIUnJNlav4gudFw\nDd+n7cCBU7sQ4TcN00LnwcNxnJ4rJyLSDYZtIqJ+qL5RgRNnD+BU/hG0Kpu7bfdznLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8e50940>"
"<matplotlib.figure.Figure at 0x96927b8>"
]
},
"metadata": {},
@@ -1169,7 +1167,6 @@
" ys = gaussian(xs, mu, variance)\n",
" plt.plot(xs, ys)\n",
" plt.ylim((0, 1))\n",
" plt.show()\n",
"\n",
"interact (plt_g, mu=(0, 10), \n",
" variance=widgets.FloatSliderWidget(value=0.6, min=0.2, max=4));"
@@ -1195,11 +1192,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Recall how our discrete Bayesian filter worked. We had a vector implemented as a NumPy array representing our belief at a certain moment in time. When we performed another measurement using the `update()` function we had to multiply probabilities together, and when we performed the motion step using the `predict()` function we had to shift and add probabilities. I've promised you that the Kalman filter uses essentially the same process, and that it uses Gaussians instead of histograms, so you might reasonable expect that we will be multiplying, adding, and shifting Gaussians in the Kalman filter.\n",
"Recall how our discrete Bayesian filter worked. We had a vector implemented as a NumPy array representing our belief at a certain moment in time. When we integrated another measurement into our belief using the `update()` function we had to multiply probabilities together, and when we performed the motion step using the `predict()` function we had to shift and add probabilities. I've promised you that the Kalman filter uses essentially the same process, and that it uses Gaussians instead of histograms, so you might reasonable expect that we will be multiplying, adding, and shifting Gaussians in the Kalman filter.\n",
"\n",
"A typical textbook would directly launch into a multi-page proof of the behavior of Gaussians under these operations, but I don't see the value in that right now. I think the math will be much more intuitive and clear if we just start developing a Kalman filter using Gaussians. I will provide the equations for multiplying and shifting Gaussians at the appropriate time. You will then be able to develop a physical intuition for what these operations do, rather than be forced to digest a lot of fairly abstract math.\n",
"\n",
"The key point, which I will only assert for now, is that all the operations are very simple, and that they preserve the properties of the Gaussian. This is somewhat remarkable, in that the Gaussian is a nonlinear function, and typically if you multiply a nonlinear equation with itself you end up with a different equation. For example, the shape of `sin(x)sin(x)` is very different from `sin(x)`. But the result of multiplying two Gaussians is yet another Gaussian. This is a fundamental property, and a key reason why Kalman filters are computationally feasible."
"The key point, which I will only assert for now, is that all the operations are very simple, and that they preserve the properties of the Gaussian. This is somewhat remarkable, in that the Gaussian is a nonlinear function, and typically if you multiply a nonlinear equation with itself you end up with a different equation. For example, the shape of `sin(x)sin(x)` is very different from `sin(x)`. But the result of multiplying two Gaussians is yet another Gaussian. This is a fundamental property, and a key reason why Kalman filters are computationally feasible. Said another way, Kalman filters use Gaussians *because* they are so computationally nice. "
]
},
{
@@ -1213,16 +1210,17 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"In this chapter I have used custom code for computing Gaussians, plotting, and so on. I chose to do that to give you a chance to look at the code and see how these functions are implemented. However, Python comes with \"batteries included\" as the saying goes, and it comes with a wide range of statistics functions in the module `scipy.stats`. I find the performance of some of the functions rather slow (the scipy.stats documentation contains a warning to this effect), but this is offset by the fact that this is standard code available to everyone, and it is well tested. So let's walk through how to use scipy.stats to compute various things.\n",
"In this chapter I have used custom code from FilterPy for computing Gaussians, plotting, and so on. I chose to do that to give you a chance to look at the code and see how these functions are implemented. However, Python comes with \"batteries included\" as the saying goes, and it comes with a wide range of statistics functions in the module `scipy.stats`. I find the performance of some of the functions rather slow (the `scipy.stats` documentation contains a warning to this effect), but this is offset by the fact that this is standard code available to everyone, and it is well tested. So let's walk through how to use scipy.stats to compute statistics and probabilities.\n",
"\n",
"The scipy.stats module contains a number of objects which you can use to compute attributes of various probability distributions. The full documentation for this module is here: http://http://docs.scipy.org/doc/scipy/reference/stats.html. However, we will focus on the norm variable, which implements the normal distribution. Let's look at some code that uses `scipy.stats.norm` to compute a Gaussian, and compare its value to the value returned by the `gaussian()` function."
"The `scipy.stats` module contains a number of objects which you can use to compute attributes of various probability distributions. The full documentation for this module is here: http://http://docs.scipy.org/doc/scipy/reference/stats.html. However, we will focus on the norm variable, which implements the normal distribution. Let's look at some code that uses `scipy.stats.norm` to compute a Gaussian, and compare its value to the value returned by the `gaussian()` function from FilterPy."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
"collapsed": false,
"scrolled": true
},
"outputs": [
{
@@ -1236,8 +1234,9 @@
],
"source": [
"from scipy.stats import norm\n",
"import filterpy.stats\n",
"print(norm(2, 3).pdf(1.5))\n",
"print(gaussian(x=1.5, mean=2, var=3*3))"
"print(filterpy.stats.gaussian(x=1.5, mean=2, var=3*3))"
]
},
{
@@ -1258,16 +1257,16 @@
"name": "stdout",
"output_type": "stream",
"text": [
"probability density of 1.5 is 0.1311\n",
"probability density of 2.5 is also 0.1311\n",
"probability density of 1.5 is 0.1311\n",
"probability density of 2.5 is also 0.1311\n",
"whereas probability density of 2 is 0.1330\n"
]
}
],
"source": [
"n23 = norm(2, 3)\n",
"print('probability density of 1.5 is %.4f' % n23.pdf(1.5))\n",
"print('probability density of 2.5 is also %.4f' % n23.pdf(2.5))\n",
"print('probability density of 1.5 is %.4f' % n23.pdf(1.5))\n",
"print('probability density of 2.5 is also %.4f' % n23.pdf(2.5))\n",
"print('whereas probability density of 2 is %.4f' % n23.pdf(2))"
]
},
@@ -1291,9 +1290,9 @@
"name": "stdout",
"output_type": "stream",
"text": [
"[-0.42731687 6.28321669 2.92563648 1.95575684 4.66942384 2.42647457\n",
" -0.48271159 3.8215393 5.59190768 -1.88855789 2.04227006 0.49550218\n",
" 1.22948499 2.59064287 2.36829778]\n"
"[ 4.28918375 0.28515148 6.6813951 -0.90647378 -3.11286229 -0.23009077\n",
" 2.70486564 -1.96423111 3.81979672 3.78714347 2.90120567 1.34502476\n",
" 1.54753878 3.542725 5.22996079]\n"
]
}
],
@@ -1362,7 +1361,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"There are many other functions available, and if you are interested I urge you to peruse the documentation. I find the documentation to be excessively terse, but with a bit of googling you can find out what a function does and some examples of how to use it. Most of this functionality is not of immediate interest to the book, so I will leave the topic in your hands to explore. The <a href=\"http://docs.scipy.org/doc/scipy/reference/tutorial/stats.html\">SciPy tutorial</a> [3] is quite approachable, and I suggest starting there. "
"There are many other functions available, and if you are interested I urge you to peruse the documentation. Sometimes the documentation is terse, but with a bit of googling you can find out what a function does and some examples of how to use it. Most of this functionality is not of immediate interest to the book, so I will leave the topic in your hands to explore. The <a href=\"http://docs.scipy.org/doc/scipy/reference/tutorial/stats.html\">SciPy tutorial</a> [3] is quite approachable, and I suggest starting there. "
]
},
{
@@ -1376,25 +1375,27 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Earlier I spoke very briefly about the *central limit theorem*, which states that under certain conditions the arithmetic sum of **any** independent random variables will be normally distributed, regardless of how the random variables are distributed. This is extremely important for (at least) two reasons. First, nature is full of distributions which are not normal, but when we apply the central limit theorem over large populations we end up with normal distributions. Second, Gaussians are mathematically *tractable*. We will see this more as we develop the Kalman filter theory, but there are very nice closed form solutions for operations on Gaussians that allow us to use them analytically.\n",
"Earlier I spoke very briefly about the **central limit theorem**, which states that under certain conditions the arithmetic sum of **any** independent random variables will be normally distributed, regardless of how the random variables are distributed. This is extremely important for (at least) two reasons. First, nature is full of distributions which are not normal, but when we apply the central limit theorem over large populations we end up with normal distributions. Second, Gaussians are mathematically *tractable*. We will see this more as we develop the Kalman filter theory, but there are very nice closed form solutions for operations on Gaussians that allow us to use them analytically.\n",
"\n",
"However, a key part of the proof is \"under certain conditions\". These conditions often do not hold for the physical world. The resulting distributions are called *fat tailed*. Let's consider a trivial example. We think of things like test scores as being normally distributed. If you have ever had a professor 'grade on a curve' you have been subject to this assumption. But of course test scores cannot follow a normal distribution. This is because the distribution assigns a nonzero probability distribution for *any* value, no matter how far from the mean. So, for example, say your mean is 90 and the standard deviation is 13. The normal distribution assumes that there is a large chance of somebody getting a 90, and a small chance of somebody getting a 40. However, it also implies that there is a tiny chance of somebody getting a -10, or of 150. It assumes that there is a infinitesimal chance of getting a score of -1e300, or 4e50. In other words, the *tails* of the distribution are infinite. \n",
"However, a key part of the proof is \"under certain conditions\". These conditions often do not hold for the physical world. The resulting distributions are called **fat tailed**. Tails is a colloquial term for the far left and right side parts of the curve where the probability density is close to zero.\n",
"\n",
"But for a test we know this is not true. You cannot get less than 0, or more than 100. Let's plot this using a normal distribution."
"Let's consider a trivial example. We think of things like test scores as being normally distributed. If you have ever had a professor 'grade on a curve' you have been subject to this assumption. But of course test scores cannot follow a normal distribution. This is because the distribution assigns a nonzero probability distribution for *any* value, no matter how far from the mean. So, for example, say your mean is 90 and the standard deviation is 13. The normal distribution assumes that there is a large chance of somebody getting a 90, and a small chance of somebody getting a 40. However, it also implies that there is a tiny chance of somebody getting a grade of -10, or 150. It assumes that there is a infinitesimal chance of getting a score of -1e300, or 4e50. The *tails* of a Gaussian distribution are infinite because Gaussians are continuous functions.\n",
"\n",
"But for a test we know this is not true. Ignoring extra credit, you cannot get less than 0, or more than 100. Let's plot this using a normal distribution."
]
},
{
"cell_type": "code",
"execution_count": 26,
"execution_count": 35,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8dfa080>"
"<matplotlib.figure.Figure at 0x960fc18>"
]
},
"metadata": {},
@@ -1403,20 +1404,18 @@
],
"source": [
"xs = np.arange(10,100, 0.05)\n",
"plt.plot(xs, [gaussian(x, 90, 13) for x in xs], label='var=0.2')\n",
"plt.xlim((60,120))\n",
"plt.show()"
"plt.plot(xs, [gaussian(x, 90, 30) for x in xs], label='var=0.2')\n",
"plt.xlim((0,120))\n",
"plt.ylim(0, 0.09);"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So the problem with this chart is that the area under the drawn curve cannot equal 1, so it is not a probability distribution. What actually happens is that a few more students get scores nearer the upper end of the range (for example), and that tail becomes 'fat'. Also, the test is probably not able to perfectly distinguish incredibly minute differences in skill in the students, so the distribution to the left of the mean is also probably a bit bunched up in places. The resulting distribution is called a *fat tail distribution*.\n",
"The area under the curve cannot equal 1, so it is not a probability distribution. What actually happens is that a more students than predicted by a normal distribution get scores nearer the upper end of the range (for example), and that tail becomes 'fat'. Also, the test is probably not able to perfectly distinguish incredibly minute differences in skill in the students, so the distribution to the left of the mean is also probably a bit bunched up in places. The resulting distribution is called a *fat tail distribution*. \n",
"\n",
"We are not going to be applying Kalman filters to grades of student papers, but we are using physical sensors to measure the world. The errors in sensor's measurements are rarely truly Gaussian. And, of course, the signal itself will have time dependent correlations. For example, consider a sensor mounted on a helicopter. The rotating blades cause vibrations in the air frame, which will cause small deviations in the flight path. This deviation will be related to the frequency of the vibration, hence the values at t and t+1 are not *independent*. The vibration will effect sensors such as the INS. No physical object can react instantly to changes, so the INS will somewhat lag the vibrations in a perhaps quite complex way, and so the noise introduced by the vibration will be anything but independent. \n",
"\n",
"It is far too early to be talking about the difficulties that this presents to the Kalman filter designer. It is worth keeping in the back of your mind the fact that the Kalman filter math is based on a somewhat idealized model of the world. For now I will present a bit of code that I will be using later in the book to form fat tail distributions to simulate various processes and sensors. This distribution is called the student's t distribution. \n",
"Kalman filters use sensors to measure the world. The errors in sensor's measurements are rarely truly Gaussian. It is far too early to be talking about the difficulties that this presents to the Kalman filter designer. It is worth keeping in the back of your mind the fact that the Kalman filter math is based on a somewhat idealized model of the world. For now I will present a bit of code that I will be using later in the book to form fat tail distributions to simulate various processes and sensors. This distribution is called the student's t distribution. \n",
"\n",
"Let's say I want to model a sensor that has some noise in the output. For simplicity, let's say the signal is a constant 10, and the standard deviation of the noise is 2. We can use the function `numpy.random.randn()` to get a random number with a mean of 0 and a standard deviation of 1. So I could simulate this sensor with"
]
@@ -1451,9 +1450,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8edec18>"
"<matplotlib.figure.Figure at 0x9761320>"
]
},
"metadata": {},
@@ -1462,8 +1461,7 @@
],
"source": [
"zs = [sense() for i in range(5000)]\n",
"plt.plot(zs, lw=1)\n",
"plt.show()"
"plt.plot(zs, lw=1);"
]
},
{
@@ -1504,9 +1502,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8ee5a90>"
"<matplotlib.figure.Figure at 0x975ff98>"
]
},
"metadata": {},
@@ -1518,8 +1516,7 @@
" return 10 + rand_student_t(7)*2\n",
"\n",
"zs = [sense_t() for i in range(5000)]\n",
"plt.plot(zs, lw=1)\n",
"plt.show()"
"plt.plot(zs, lw=1);"
]
},
{