-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathevaluation_code.py
65 lines (50 loc) · 2.01 KB
/
evaluation_code.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
56
57
58
59
60
61
62
63
64
65
import csv
import numpy as np
from sklearn import metrics
def read_pred(predFile):
with open(predFile, 'r') as csvFile:
reader = csv.reader(csvFile)
pred = []
for row in reader:
data = row[0].split(',')
pred.append(float(data[0]))
return np.array(pred)
def read_gt(gtFile):
with open(gtFile, 'r') as csvFile:
reader = csv.reader(csvFile)
gt = []
for row in reader:
data = row[0].split(',')
gt.append(int(data[0])+1)
return np.array(gt)
def cal_auc(gt, pred):
fpr, tpr, thresholds = metrics.roc_curve(gt, pred, pos_label=2)
return metrics.auc(fpr, tpr)
def final_eval(track_1_predFile=None, track_2_predFile=None):
track_1_gtFile = '/path/to/series_test_gt.csv'
track_2_gtFile = '/path/to/movie_test_gt.csv'
# track_1: series
if track_1_predFile:
track_1_gt = read_gt(track_1_gtFile)
track_1_pred = read_pred(track_1_predFile)
print('Track_1_series: {} records.'.format(len(track_1_gt)))
assert len(track_1_pred) == len(track_1_gt), 'Error, track 1 prediction samples: %s'%(len(track_1_pred))
track_1_auc = cal_auc(track_1_gt, track_1_pred)
else:
track_1_auc = None
# track_2: movies
if track_2_predFile:
track_2_gt = read_gt(track_2_gtFile)
track_2_pred = read_pred(track_2_predFile)
print('Track_2_movie: {} records.'.format(len(track_2_gt)))
assert len(track_2_pred) == len(track_2_gt), 'Error, track 2 prediction samples: %s'%(len(track_2_pred))
track_2_auc = cal_auc(track_2_gt, track_2_pred)
else:
track_2_auc = None
# display the evaluation results
print('')
print('Track_1_series AUC: {:.6}'.format(track_1_auc))
print('Track_2_movies AUC: {:.6}'.format(track_2_auc))
track1_series_predFile = '/path/to/series_test_prediction.csv'
track2_movies_predFile = '/path/to/movie_test_prediction.csv'
final_eval(track1_series_predFile, track2_movies_predFile)