-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmetrics.py
More file actions
33 lines (27 loc) · 1.08 KB
/
Copy pathmetrics.py
File metadata and controls
33 lines (27 loc) · 1.08 KB
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
import numpy as np
from dtw import *
from scipy.spatial import distance
def weighted_jaccard(process_A, process_B):
if process_A != None and process_B != None:
mi = float(0)
ma = float(0)
for a, b in zip(process_A,process_B):
if not (a == 0 and b == 0):
mi += min(a,b)
ma += max(a,b)
return 1 - float(mi / ma)
#return float(distance.jaccard(process_A, process_B))
return -100
def dtw_as_float(process_A, process_B):
if process_A != None and process_B != None:
# print(dtw(process_A, process_B, keep_internals=True).distance)
return float(dtw(process_A, process_B, keep_internals=True).distance)
return -100
def euclidean_as_float(process_A, process_B):
if process_A != None and process_B != None:
return float(np.linalg.norm(np.array(process_A)-np.array(process_B)))
return -100
def real_jaccard(process_A, process_B):
if process_A != None and process_B != None:
return float(distance.jaccard(process_A, process_B))
return -100