|
@@ -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 ...
|