[Scipy-svn] r3137 - in trunk/Lib/sandbox/pyem: . examples
scipy-svn@scip...
scipy-svn@scip...
Mon Jul 2 04:49:30 CDT 2007
Author: cdavid
Date: 2007-07-02 04:49:12 -0500 (Mon, 02 Jul 2007)
New Revision: 3137
Modified:
trunk/Lib/sandbox/pyem/densities.py
trunk/Lib/sandbox/pyem/examples/pdfestimation1d.py
Log:
Clean up for densities.py
Modified: trunk/Lib/sandbox/pyem/densities.py
===================================================================
--- trunk/Lib/sandbox/pyem/densities.py 2007-07-02 09:31:18 UTC (rev 3136)
+++ trunk/Lib/sandbox/pyem/densities.py 2007-07-02 09:49:12 UTC (rev 3137)
@@ -1,7 +1,7 @@
#! /usr/bin/python
#
# Copyrighted David Cournapeau
-# Last Change: Sat Jun 30 04:00 PM 2007 J
+# Last Change: Mon Jul 02 06:00 PM 2007 J
"""This module implements various basic functions related to multivariate
gaussian, such as pdf estimation, confidence interval/ellipsoids, etc..."""
@@ -294,55 +294,19 @@
mu = N.atleast_2d(mu)
va = N.atleast_2d(va)
- K = N.shape(mu)[0]
+ k = N.shape(mu)[0]
n = N.shape(data)[0]
d = N.shape(mu)[1]
- y = N.zeros((K, n))
+ y = N.zeros((k, n))
if N.size(mu) == N.size(va):
- for i in range(K):
+ for i in range(k):
y[i] = gauss_den(data, mu[i, :], va[i, :], log)
return y.T
else:
- for i in range(K):
+ for i in range(k):
y[i] = gauss_den(data, mu[i, :], va[d*i:d*i+d, :], log)
return y.T
if __name__ == "__main__":
pass
- ## import pylab
-
- ## #=========================================
- ## # Test plotting a simple diag 2d variance:
- ## #=========================================
- ## va = N.array([5, 3])
- ## mu = N.array([2, 3])
-
- ## # Generate a multivariate gaussian of mean mu and covariance va
- ## X = randn(1e3, 2)
- ## Yc = N.dot(N.diag(N.sqrt(va)), X.transpose())
- ## Yc = Yc.transpose() + mu
-
- ## # Plotting
- ## Xe, Ye = gauss_ell(mu, va, npoints = 100)
- ## pylab.figure()
- ## pylab.plot(Yc[:, 0], Yc[:, 1], '.')
- ## pylab.plot(Xe, Ye, 'r')
-
- ## #=========================================
- ## # Test plotting a simple full 2d variance:
- ## #=========================================
- ## va = N.array([[0.2, 0.1],[0.1, 0.5]])
- ## mu = N.array([0, 3])
-
- ## # Generate a multivariate gaussian of mean mu and covariance va
- ## X = randn(1e3, 2)
- ## Yc = N.dot(lin.cholesky(va), X.transpose())
- ## Yc = Yc.transpose() + mu
-
- ## # Plotting
- ## Xe, Ye = gauss_ell(mu, va, npoints = 100, level=0.95)
- ## pylab.figure()
- ## pylab.plot(Yc[:, 0], Yc[:, 1], '.')
- ## pylab.plot(Xe, Ye, 'r')
- ## pylab.show()
Modified: trunk/Lib/sandbox/pyem/examples/pdfestimation1d.py
===================================================================
--- trunk/Lib/sandbox/pyem/examples/pdfestimation1d.py 2007-07-02 09:31:18 UTC (rev 3136)
+++ trunk/Lib/sandbox/pyem/examples/pdfestimation1d.py 2007-07-02 09:49:12 UTC (rev 3137)
@@ -51,11 +51,17 @@
mbic = N.argmax(bc)
-# Below is code to display a figure with histogram and best model (in the BIC sense)
-# pdf, with the BIC as a function of the number of components on the right.
+# Below is code to display a figure with histogram and best model (in the BIC
+# sense) pdf, with the BIC as a function of the number of components on the
+# right.
P.figure(figsize = [12, 7])
+#---------------------------
+# histogram + pdf estimation
+#---------------------------
P.subplot(1, 2, 1)
h = gml[mbic].plot1d(gpdf=True)
+# You can manipulate the differents parts of the plot through the returned
+# handles
h['gpdf'][0].set_linestyle('-')
h['gpdf'][0].set_label('pdf of the mixture')
h['pdf'][0].set_label('pdf of individual component')
@@ -68,6 +74,9 @@
P.hist(dt, 25, normed = 1, fill = False)
P.xlabel('waiting time between consecutive eruption (in min)')
+#------------------------------------------
+# BIC as a function of number of components
+#------------------------------------------
P.subplot(1, 2, 2)
P.plot(N.arange(1, 8), bc, 'o:')
P.xlabel("number of components")
More information about the Scipy-svn
mailing list