Cleaned up stats.py, and added documentation for scipy.stats module.
This commit is contained in:
1 parent
e5ee4602f8
commit
a29f30e293
4 files changed
+293
-87
No files matched your search
+195
-35
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"metadata": {
|
||||
"name": "",
|
||||
"signature": "sha256:d156d193bfb418b2b1abcbaa1a819c9a4e429e43842b4ecfaccb12444ce39e88"
|
||||
"signature": "sha256:77dd26699221cccc5dd8134da79cadeb734eb30e9b6aa6d1b6b28bd6ad8c9566"
|
||||
},
|
||||
"nbformat": 3,
|
||||
"nbformat_minor": 0,
|
||||
@@ -147,14 +147,9 @@
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"#ignore this code.\n",
|
||||
"%matplotlib inline\n",
|
||||
"from __future__ import division, print_function\n",
|
||||
"from gaussian_internal import plot_gaussian\n",
|
||||
"import matplotlib.pylab as pylab\n",
|
||||
"pylab.rcParams['figure.figsize'] = 10,6\n",
|
||||
"from stats import plot_gaussian\n",
|
||||
"\n",
|
||||
"plot_gaussian(mu=100, variance=15*15, xlim=(45,155), xlabel='IQ', ylabel='percent')"
|
||||
"plot_gaussian(mean=100, variance=15*15, xlabel='IQ', ylabel='percent')"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
@@ -162,13 +157,13 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x3c19b10>"
|
||||
"<matplotlib.figure.Figure at 0xa89fe48>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 3
|
||||
"prompt_number": 2
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -249,7 +244,7 @@
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"from stats import gaussian\n",
|
||||
"plot_gaussian(22,4,True,xlabel='$^{\\circ}C$',ylabel=\"Percent\")\n",
|
||||
"plot_gaussian(22,4,mean_line=True,xlabel='$^{\\circ}C$',ylabel=\"Percent\")\n",
|
||||
"\n",
|
||||
"print('Probability of 22 is %.2f' % (gaussian(22,22,4)*100))\n",
|
||||
"print('Probability of 24 is %.2f' % (gaussian(24,22,4)*100))"
|
||||
@@ -257,14 +252,6 @@
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x3ede990>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"output_type": "stream",
|
||||
"stream": "stdout",
|
||||
@@ -272,9 +259,17 @@
|
||||
"Probability of 22 is 19.95\n",
|
||||
"Probability of 24 is 12.10\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0xa8c1f60>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 4
|
||||
"prompt_number": 3
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -308,7 +303,7 @@
|
||||
"import numpy as np\n",
|
||||
"import matplotlib.pyplot as plt\n",
|
||||
"\n",
|
||||
"xs = np.arange(15,30,0.1)\n",
|
||||
"xs = np.arange(15,30,0.05)\n",
|
||||
"p1, = plt.plot (xs,[gaussian(x, 23, .2) for x in xs],'b')\n",
|
||||
"p2, = plt.plot (xs,[gaussian(x, 23, 1) for x in xs],'g')\n",
|
||||
"p3, = plt.plot (xs,[gaussian(x, 23, 5) for x in xs],'r')\n",
|
||||
@@ -321,13 +316,13 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x3ec5250>"
|
||||
"<matplotlib.figure.Figure at 0xaaea198>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 5
|
||||
"prompt_number": 4
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -354,7 +349,8 @@
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"from gaussian_internal import display_stddev_plot\n",
|
||||
"display_stddev_plot()"
|
||||
"display_stddev_plot()\n",
|
||||
"plt.show()"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
@@ -362,13 +358,13 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x4035390>"
|
||||
"<matplotlib.figure.Figure at 0xa4bb860>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 6
|
||||
"prompt_number": 5
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -417,21 +413,21 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x3ed1390>"
|
||||
"<matplotlib.figure.Figure at 0xaafe828>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "pyout",
|
||||
"prompt_number": 7,
|
||||
"prompt_number": 6,
|
||||
"text": [
|
||||
"<function __main__.plt_g>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 7
|
||||
"prompt_number": 6
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
@@ -445,11 +441,175 @@
|
||||
"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 *sense()* function we had to multiply probabilities together, and when we performed the motion step using the *update()* 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 multipling, 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 performed another measurement using the $\\texttt{sense()}$ function we had to multiply probabilities together, and when we performed the motion step using the $\\texttt{update()}$ 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 multipling, adding, and shifting Gaussians in the Kalman filter.\n",
|
||||
"\n",
|
||||
"A typical textbook would directly launch into a multipage 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 the key reason why Kalman filters are possible."
|
||||
"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 $\\texttt{sin(x)sin(x)}$ is very different from $\\texttt{sin(x)}$. But the result of multiplying two Gaussians is yet another Gaussian. This is a fundamental property, and the key reason why Kalman filters are possible."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
"level": 2,
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Computing Probabilities with scipy.stats"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"In this chapter I have used by custom written 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, 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",
|
||||
"\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 $\\texttt{scipy.stats.norm}$ to compute a Gaussian, and compare its value to the value returned by the $\\texttt{gaussian()}$ function."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"from scipy.stats import norm\n",
|
||||
"print (norm(2,3).pdf(1.5))\n",
|
||||
"print (gaussian(x=1.5, mean=2, var=3*3))"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"output_type": "stream",
|
||||
"stream": "stdout",
|
||||
"text": [
|
||||
"0.131146572034\n",
|
||||
"0.131146572034\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 18
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"The call $\\texttt{norm(2,3)}$ creates what scipy calls a 'frozen' distribution - it creates and returns an object with a mean of 2 and a standard deviation of 3. You can then use this object multiple times to get the probability of various values, like so:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"n23 = norm(2,3)\n",
|
||||
"print ('probability of 1.5 is %.4f' % n23.pdf(1.5))\n",
|
||||
"print ('probability of 2.5 is also %.4f' % n23.pdf(2.5))\n",
|
||||
"print ('whereas probability of 2 is %.4f' % n23.pdf(2))"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"output_type": "stream",
|
||||
"stream": "stdout",
|
||||
"text": [
|
||||
"probability of 1.5 is 0.1311\n",
|
||||
"probability of 2.5 is also 0.1311\n",
|
||||
"whereas probability of 2 is 0.1330\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 29
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"If we look at the documentation for $\\texttt{scipy.stats.norm}$ at http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.norm.html#scipy.stats.normfor we see that there are many other functions that norm provides.\n",
|
||||
"\n",
|
||||
"For example, we can generate $n$ samples from the distribution with the $\\texttt{rvs()}$ function."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"print (n23.rvs(size=15))"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"output_type": "stream",
|
||||
"stream": "stdout",
|
||||
"text": [
|
||||
"[-1.38712424 3.97243811 0.92282289 -1.55104121 1.20054046 3.01082724\n",
|
||||
" 2.16107712 -3.75593717 -3.33939026 -0.96990356 3.9068464 -4.27111698\n",
|
||||
" -1.46172011 1.24786025 4.62186611]\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 31
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"We can get the *cumulative distribution function (CDF)*, which is the probability that a randomly drawn value from the distribution is less than or equal to $x$."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"# probability that a random value is less than the mean 2\n",
|
||||
"print (n23.cdf (2))"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"output_type": "stream",
|
||||
"stream": "stdout",
|
||||
"text": [
|
||||
"0.5\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 33
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"We can get various properties of the distribution:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"print ('variance is', n23.var())\n",
|
||||
"print ('standard deviation is', n23.std())\n",
|
||||
"print ('mean is', n23.mean())"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"output_type": "stream",
|
||||
"stream": "stdout",
|
||||
"text": [
|
||||
"variance is 9.0\n",
|
||||
"standard deviation is 3.0\n",
|
||||
"mean is 2.0\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 37
|
||||
},
|
||||
{
|
||||
"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. "
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"metadata": {
|
||||
"name": "",
|
||||
"signature": "sha256:22be69a2e94220518ac46fa32a493f4e6a94a118e580f9527d8d1a8ac217f37a"
|
||||
"signature": "sha256:289a94c10bf8fbab3d3994e581012c7506ea7c6125653aaa21a1335bc2b5749d"
|
||||
},
|
||||
"nbformat": 3,
|
||||
"nbformat_minor": 0,
|
||||
@@ -976,12 +976,12 @@
|
||||
"input": [
|
||||
"import numpy as np\n",
|
||||
"from KalmanFilter import KalmanFilter\n",
|
||||
"f = KalmanFilter (dim=2)"
|
||||
"dog_filter = KalmanFilter (dim=2)"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"prompt_number": 16
|
||||
"prompt_number": 3
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -996,17 +996,17 @@
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"f.x = np.matrix([[0], [0]]) # initial state (location and velocity)\n",
|
||||
"f.F = np.matrix([[1,1], [0,1]]) # state transition matrix\n",
|
||||
"f.H = np.matrix([[1,0]]) # Measurement function\n",
|
||||
"f.R = 5 # measurement noise\n",
|
||||
"f.Q = 0 # process noise\n",
|
||||
"f.P *= 500. # covariance matrix \n"
|
||||
"dog_filter.x = np.matrix([[0], [0]]) # initial state (location and velocity)\n",
|
||||
"dog_filter.F = np.matrix([[1,1], [0,1]]) # state transition matrix\n",
|
||||
"dog_filter.H = np.matrix([[1,0]]) # Measurement function\n",
|
||||
"dog_filter.R = 5 # measurement noise\n",
|
||||
"dog_filter.Q = 0 # process noise\n",
|
||||
"dog_filter.P *= 500. # covariance matrix \n"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"prompt_number": 17
|
||||
"prompt_number": 4
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -1049,17 +1049,20 @@
|
||||
"from DogSensor import DogSensor\n",
|
||||
"\n",
|
||||
"def dog_tracking_filter(R,Q=0,cov=1.):\n",
|
||||
" f = KalmanFilter (dim=2)\n",
|
||||
" f.x = np.matrix([[0], [0]]) # initial state (location and velocity)\n",
|
||||
" f.F = np.matrix([[1,1],[0,1]]) # state transition matrix\n",
|
||||
" f.H = np.matrix([[1,0]]) # Measurement function\n",
|
||||
" f.R = R # measurement uncertainty\n",
|
||||
" f.P *= cov # covariance matrix \n",
|
||||
" dog_filter = KalmanFilter (dim=2)\n",
|
||||
" dog_filter.x = np.matrix([[0], \n",
|
||||
" [0]]) # initial state (location and velocity)\n",
|
||||
" dog_filter.F = np.matrix([[1,1],\n",
|
||||
" [0,1]]) # state transition matrix\n",
|
||||
" dog_filter.H = np.matrix([[1,0]]) # Measurement function\n",
|
||||
" dog_filter.R = R # measurement uncertainty\n",
|
||||
" dog_filter.P *= cov # covariance matrix \n",
|
||||
" if np.isscalar(Q):\n",
|
||||
" f.Q = np.matrix([[0,0],[0,Q]])\n",
|
||||
" dog_filter.Q = np.matrix([[0,0],\n",
|
||||
" [0,Q]])\n",
|
||||
" else:\n",
|
||||
" f.Q = Q\n",
|
||||
" return f\n",
|
||||
" dog_filter.Q = Q\n",
|
||||
" return dog_filter\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"def filter_dog(noise=0, count=0, R=0, Q=0, data=None):\n",
|
||||
@@ -1078,15 +1081,14 @@
|
||||
"\n",
|
||||
" dog_filter = dog_tracking_filter(R=R, Q=Q, cov=500.)\n",
|
||||
"\n",
|
||||
" pos = [None] * count\n",
|
||||
" pos = [None] * count\n",
|
||||
" cov = [None] * count\n",
|
||||
" \n",
|
||||
" for t in range(count):\n",
|
||||
" z = zs[t]\n",
|
||||
" pos[t] = dog_filter.x[0,0]\n",
|
||||
" cov[t] = dog_filter.P\n",
|
||||
"\n",
|
||||
" \n",
|
||||
" \n",
|
||||
" # perform the kalman filter steps\n",
|
||||
" dog_filter.update (z)\n",
|
||||
" dog_filter.predict()\n",
|
||||
@@ -1096,7 +1098,7 @@
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"prompt_number": 18
|
||||
"prompt_number": 5
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -1146,8 +1148,8 @@
|
||||
" plt.legend([p0,p1,p2], ['actual','measurement', 'filter'], 2)\n",
|
||||
" plt.ylim((0-10,count+10))\n",
|
||||
" plt.title(title)\n",
|
||||
"\n",
|
||||
" plt.show()\n",
|
||||
" \n",
|
||||
" if plot_P:\n",
|
||||
" plt.subplot(121)\n",
|
||||
" plot_covariance(cov, (0,0))\n",
|
||||
@@ -1164,7 +1166,7 @@
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"prompt_number": 19
|
||||
"prompt_number": 6
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -1185,9 +1187,9 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0xa5eb588>"
|
||||
"<matplotlib.figure.Figure at 0xa7f5eb8>"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1195,11 +1197,11 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0xa4b2ba8>"
|
||||
"<matplotlib.figure.Figure at 0xa97c470>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 20
|
||||
"prompt_number": 7
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -1275,7 +1277,7 @@
|
||||
" self.x = self.x + (K*y)\n",
|
||||
" self.P = (self.I - (K*self.H))*self.P\n",
|
||||
" \n",
|
||||
"Finally, for those reading this online or in a printed form, here is the code in $\\verb,KalmanFilter.py,$ absent the unit testing code that is included in that file."
|
||||
"Finally, for those reading this online or in a printed form, here is the code in $\\verb,KalmanFilter.py,$ absent the unit testing code that is included in that file. It has also been simplified slightly; the actual code uses a more complicated way to compute $\\mathbf{P}$ in the update step that is more numerically stable. We are not yet prepared to discuss the numerical performance of the filter, so I have elided that code here. "
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1327,7 +1329,7 @@
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"prompt_number": 21
|
||||
"prompt_number": 8
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
@@ -1364,21 +1366,21 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0xa8a1c50>"
|
||||
"<matplotlib.figure.Figure at 0xad17cf8>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0xaaafac8>"
|
||||
"<matplotlib.figure.Figure at 0x3b324a8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 22
|
||||
"prompt_number": 9
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
|
||||
@@ -16,6 +16,7 @@ def plot_gaussian (mu, variance,
|
||||
xlim=None,
|
||||
xlabel=None,
|
||||
ylabel=None):
|
||||
|
||||
xs = np.arange(mu-variance*2,mu+variance*2,0.1)
|
||||
ys = [stats.gaussian (x, mu, variance)*100 for x in xs]
|
||||
plt.plot (xs, ys)
|
||||
@@ -51,7 +52,6 @@ def display_stddev_plot():
|
||||
ax.xaxis.set_ticklabels(['$-\sigma$','$\mu$','$\sigma$'])
|
||||
ax.yaxis.set_ticks([])
|
||||
plt.show()
|
||||
pylab.rcParams['figure.figsize'] = figsize
|
||||
|
||||
if __name__ == '__main__':
|
||||
display_stddev_plot()
|
||||
@@ -12,6 +12,7 @@ faster, at least on my machine. For example, gaussian average 794 ns, whereas
|
||||
stats.norm(), using the frozen form, averages 116 microseconds per call.
|
||||
"""
|
||||
|
||||
from __future__ import division
|
||||
|
||||
import math
|
||||
import numpy as np
|
||||
@@ -19,6 +20,7 @@ import numpy.linalg as linalg
|
||||
import matplotlib.pyplot as plt
|
||||
import scipy.sparse as sp
|
||||
import scipy.sparse.linalg as spln
|
||||
import scipy.stats
|
||||
from matplotlib.patches import Ellipse
|
||||
|
||||
_two_pi = 2*math.pi
|
||||
@@ -29,16 +31,32 @@ def gaussian(x, mean, var):
|
||||
mean and variance. All must be scalars.
|
||||
|
||||
gaussian (1,2,3) is equivalent to scipy.stats.norm(2,math.sqrt(3)).pdf(1)
|
||||
It is quite a bit faster albeit much less flexible than the latter.
|
||||
"""
|
||||
return math.exp((-0.5*(x-mean)**2)/var) / math.sqrt(_two_pi*var)
|
||||
# return scipy.stats.norm(mean, math.sqrt(var)).pdf(x)
|
||||
|
||||
def mul (a_mu, a_var, b_mu, b_var):
|
||||
m = (a_var*b_mu + b_var*a_mu) / (a_var + b_var)
|
||||
v = 1. / (1./a_var + 1./b_var)
|
||||
return (m, v)
|
||||
|
||||
def add (a_mu, a_var, b_mu, b_var):
|
||||
return (a_mu+b_mu, a_var+b_var)
|
||||
def mul (mean1, var1, mean2, var2):
|
||||
""" multiply Gaussians (mean1, var1) with (mean2, var2) and return the
|
||||
results as a tuple (mean,var).
|
||||
|
||||
var1 and var2 are variances - sigma squared in the usual parlance.
|
||||
"""
|
||||
|
||||
mean = (var1*mean2 + var2*mean1) / (var1 + var2)
|
||||
var = 1 / (1/var1 + 1/var2)
|
||||
return (mean, var)
|
||||
|
||||
|
||||
def add (mean1, var1, mean2, var2):
|
||||
""" add the Gaussians (mean1, var1) with (mean2, var2) and return the
|
||||
results as a tuple (mean,var).
|
||||
|
||||
var1 and var2 are variances - sigma squared in the usual parlance.
|
||||
"""
|
||||
|
||||
return (mean1+mean2, var1+var2)
|
||||
|
||||
|
||||
def multivariate_gaussian(x, mu, cov):
|
||||
@@ -78,13 +96,40 @@ def multivariate_gaussian(x, mu, cov):
|
||||
return math.exp(-0.5*(norm_coeff + numerator))
|
||||
|
||||
|
||||
def norm_plot(mean, var):
|
||||
min_x = mean - var * 1.5
|
||||
max_x = mean + var * 1.5
|
||||
def plot_gaussian(mean, variance,
|
||||
mean_line=False,
|
||||
xlim=None,
|
||||
xlabel=None,
|
||||
ylabel=None):
|
||||
""" plots the normal distribution with the given mean and variance. x-axis
|
||||
contains the mean, the y-axis shows the probability.
|
||||
|
||||
xs = np.arange(min_x, max_x, 0.1)
|
||||
ys = [gaussian(x,mean,var) for x in xs]
|
||||
plt.plot(xs,ys)
|
||||
mean_line : draws a line at x=mean
|
||||
xlim: optionally specify the limits for the x axis as tuple (low,high).
|
||||
If not specified, limits will be automatically chosen to be 'nice'
|
||||
xlabel : optional label for the x-axis
|
||||
ylabel : optional label for the y-axis
|
||||
"""
|
||||
|
||||
sigma = math.sqrt(variance)
|
||||
n = scipy.stats.norm(mean, sigma)
|
||||
|
||||
if xlim is None:
|
||||
min_x = n.ppf(0.001)
|
||||
max_x = n.ppf(0.999)
|
||||
else:
|
||||
min_x = xlim[0]
|
||||
max_x = xlim[1]
|
||||
xs = np.arange(min_x, max_x, (max_x - min_x) / 1000)
|
||||
plt.plot(xs,n.pdf(xs))
|
||||
plt.xlim((min_x, max_x))
|
||||
|
||||
if mean_line:
|
||||
plt.axvline(mean)
|
||||
if xlabel:
|
||||
plt.xlabel(xlabel)
|
||||
if ylabel:
|
||||
plt.ylabel(ylabel)
|
||||
|
||||
|
||||
def covariance_ellipse(P):
|
||||
@@ -100,7 +145,6 @@ def covariance_ellipse(P):
|
||||
return (orientation, width, height)
|
||||
|
||||
|
||||
|
||||
def plot_covariance_ellipse(mean, cov=None, variance = 1.0,
|
||||
ellipse=None, title=None, axis_equal=True,
|
||||
facecolor='none', edgecolor='blue'):
|
||||
@@ -112,7 +156,7 @@ def plot_covariance_ellipse(mean, cov=None, variance = 1.0,
|
||||
|
||||
variance is the normal sigma^2 that we want to plot. If list-like,
|
||||
ellipses for all ellipses will be ploted. E.g. [1,2] will plot the
|
||||
\sigma^2 = 1 and \sigma^2 = 2 ellipses.
|
||||
sigma^2 = 1 and sigma^2 = 2 ellipses.
|
||||
|
||||
ellipse is a (angle,width,height) tuple containing the angle in radians,
|
||||
and width and height radii.
|
||||
@@ -168,7 +212,6 @@ def _to_cov(x,n):
|
||||
return np.eye(n) * x
|
||||
|
||||
|
||||
|
||||
def test_gaussian():
|
||||
import scipy.stats
|
||||
|
||||
@@ -184,6 +227,7 @@ def test_gaussian():
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
from scipy.stats import norm
|
||||
|
||||
test_gaussian()
|
||||
|
||||
Reference in new issue
Block a user