-
Notifications
You must be signed in to change notification settings - Fork 0
/
FuncionesMetricas.py
44 lines (39 loc) · 1.04 KB
/
FuncionesMetricas.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
import numpy as np
def DistanciaEuclidiana(v1,v2):
v1=np.array(v1)
v2=np.array(v2)
if v1.shape[0]!=v1.shape[0]:
print "Error: vectores de diferente longitud"
return 0
if sum((v1-v2)) == 0.0:
return 0.0
value=0.0
value=sum((v1-v2)**2)
return value
def Norma(v1):
v1=np.array(v1)
value=np.sqrt(v1.dot(v1))
return value
def DistanciaManhattan(v1,v2):
v1=np.array(v1)
v2=np.array(v2)
if v1.shape[0]!=v1.shape[0]:
print "Error: vectores de diferente longitud"
return 0
return sum((v1-v2))
def SimilaridadCoseno(v1,v2):
v1=np.array(v1)
v2=np.array(v2)
if DistanciaManhattan(v1,v2) == 0.0:
return 0.0
value=0
value+=v1.dot(v2)
value/=(Norma(v1)*Norma(v2))
return value
## Metricas entre clusters
def DistanciaIntraCluster(centroides,clusters,funcionDistancia):
value=0
for index in xrange(len(centroids)):
for vector in clusters[index]:
value+=funcionDistancia(vector,centroids[index])
return value