Explorar o código

experimentation ...

steve %!s(int64=8) %!d(string=hai) anos
pai
achega
61bbb2c5d2
Modificáronse 2 ficheiros con 35 adicións e 20 borrados
  1. 13 0
      test/data.csv
  2. 22 20
      test/demo.py

+ 13 - 0
test/data.csv

@@ -0,0 +1,13 @@
+0.0,4.5
+0.0,4.5
+11.6,4.4
+12.2,4.3
+1.4,3.9
+1.4,3.9
+2.5,3.8
+0.1,3.8
+0.5,5.1
+0.7,5.2
+0.7,5.1
+0.0,4.6
+0.0,4.6

+ 22 - 20
test/demo.py

@@ -1,25 +1,27 @@
 import numpy as np
 m = [[0.0, 4.5], [0.0, 4.5], [11.6, 4.4], [12.2, 4.3], [1.4, 3.9], [1.4, 3.9], [2.5, 3.8], [0.1, 3.8], [0.5, 5.1], [0.7, 5.2], [0.7, 5.1], [0.0, 4.6], [0.0, 4.6]]
+m = np.transpose(np.array(m))
+xu_ = np.mean(m[1,:])
+yu_ = np.mean(m[0,:])
 
-m_ = np.array(m)
-x_ = np.mean(m_[:,0])
-y_ = np.mean(m_[:,1])
-u = np.array([x_,y_])
-r = [np.sqrt(np.var(m_[:,0])),np.sqrt(np.var(m_[:,1]))]
-x__ = (m_[:,0] - x_ )/r[0]
-y__ = (m_[:,1] - y_ )/r[1]
-
-nm = np.matrix([x__,y__])
-
-
-cx = np.cov(nm)
-print cx.shape
-x = np.array([1.9,3])
-n = 2
-a = 1/ np.sqrt((2*np.pi**k)*np.det(cx))
-b = np.exp(() )
-#from scipy.stats import multivariate_normal
-#print multivariate_normal.pdf(x,u,cx)
-
+xr_ = np.sqrt(np.var(m[0,:]))
+yr_ = np.sqrt(np.var(m[1,:]))
+#
+# -- normalizing the matrix before computing covariance
+#
+mn = np.array([list( (m[0,:]-xu_)/xr_),list( (m[1,:]-yu_)/yr_)])
+cx = np.cov(mn)
+n = m.shape[0]
+x = np.array([2.5,3.1])
+u = np.array([xu_,yu_])
+d = np.matrix(x - u)
+d.shape = (n,1)
+a  = (2*(np.pi)**(n/2))*np.linalg.det(cx)**0.5
+b = np.exp(-0.5*np.transpose(d) * (cx**-1)*d)
 
+from scipy.stats import multivariate_normal
+xo= multivariate_normal.pdf(x,u,cx)
+yo= (b/a)[0,0]
+for row in np.transpose(m):
+	print ",".join([str(value) for value in row])
 #-- We are ready to perform anomaly detection ...