-
Notifications
You must be signed in to change notification settings - Fork 0
/
compute_performance.py
68 lines (51 loc) · 2.03 KB
/
compute_performance.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
66
67
68
import argparse
import numpy as np
def main():
test_file, target_file = arg_parse()
compute_performance(test_file,target_file)
def compute_performance(test_file,target_file):
final_count = 0
con_mat = np.zeros(shape=(2,2))
#loaded in dictionary to utilize speed of hash mapping
#open test file to be compared
test_file_path = open(test_file,'r')
test_file_dict = {}
for index,line in enumerate(test_file_path):
test_file_dict.update({str(index):line.strip()})
test_file_path.close()
#open acutal file to be compared
key_file_path = open(target_file,'r')
key_file_dict = {}
for index,line in enumerate(key_file_path):
key_file_dict.update({str(index):line.strip()})
key_file_path.close()
ham_count = 0
spam_count = 0
for key in test_file_dict:
if test_file_dict[key] == key_file_dict[key]:
final_count += 1
if key_file_dict[key] == 'ham':
ham_count += 1
if key_file_dict[key] == 'spam':
spam_count += 1
if test_file_dict[key] == 'ham' and key_file_dict[key] == 'ham':
con_mat[0][0] += 1
elif test_file_dict[key] == 'spam' and key_file_dict[key] == 'ham':
con_mat[1][0] += 1
elif test_file_dict[key] == 'ham' and key_file_dict[key] == 'spam':
con_mat[0][1] += 1
else: #test_file_dict[key] == 'spam' and test_file_dict[key] == 'spam':
con_mat[1][1] += 1
print 'Accuracy: ' + str((float(final_count)/float(len(key_file_dict)))*100) + '%'
print 'Confusion Matrix:\n'
print con_mat
def arg_parse():
parser = argparse.ArgumentParser()
parser.add_argument('--test', action='store', dest='test_file',help='file to be compared to actual key',required=True)
parser.add_argument('--target', action='store', dest='target_file',help='Actual key to be compared',required=True)
parser.add_argument('--version', action='version', version='%(prog)s 1.0')
parser.add_argument('-v', action='version', version='%(prog)s 1.0')
results = parser.parse_args()
return (results.test_file,results.target_file)
if __name__ == '__main__':
main()