-
Notifications
You must be signed in to change notification settings - Fork 0
/
clase_05_01_fisher.py
55 lines (39 loc) · 1020 Bytes
/
clase_05_01_fisher.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
"""
Universidad Adolfo Ibañez
Facultad de Ingeniería y Ciencias
TICS 585 - Reconocimiento de Patrones en imágenes
Ejemplo test Fisher en una dimensión
Autor: Miguel Carrasco (06-08-2021)
rev.1.0
"""
import matplotlib.pyplot as plt
import numpy as np
from math import pi
def fisher(X1, Y1, X2, Y2):
n = len(X1)
# normalizamos la distribucion
Y1n = Y1/np.sum(Y1)
Y2n = Y2/np.sum(Y1)
#media mu
m1 = np.sum(Y1n*X1)
m2 = np.sum(Y2n*X2)
print(m1)
print(m2)
# desviacion estandar
s1 = np.sqrt( sum( ((X1-m1)**2)*Y1n ))
s2 = np.sqrt( sum( ((X2-m2)**2)*Y2n ))
# Descriptor de Fisher
J= ((m1-m2)**2)/ (s1**2+s2**2)
return J
def datg(N, s, mu):
x = np.linspace(-1,1, N)
fx = (1/(s*np.sqrt(2*pi)))* np.exp(-0.5*((x-mu)/s)**2)
return x,fx
X1,Y1 = datg(300,0.15,-0.1)
X2,Y2 = datg(300,0.21,0.1)
J = fisher(X1,Y1,X2,Y2)
print(f' J:{J}')
plt.figure()
plt.plot(X1,Y1, color='blue')
plt.plot(X2,Y2, color='red')
plt.show()