webmining u4 recall
This commit is contained in:
parent
e65f1c2448
commit
74b3703641
@ -15,6 +15,7 @@ accuracy = 0
|
||||
document_count = 0
|
||||
precision = [0,0,0,0,0,0,0,0,0,0,0]
|
||||
precision_avg = 0
|
||||
recalls = [0,0,0,0,0,0,0,0,0,0,0]
|
||||
|
||||
def load_predictionfile(file):
|
||||
global document_count
|
||||
@ -25,12 +26,12 @@ def load_predictionfile(file):
|
||||
|
||||
def confusion_matrix():
|
||||
'''
|
||||
c1 c2 ... c11
|
||||
c1
|
||||
c2
|
||||
c3
|
||||
c1 c2 ... c11
|
||||
is c1
|
||||
is c2
|
||||
is c3
|
||||
...
|
||||
c11
|
||||
is c11
|
||||
'''
|
||||
for pred in preds:
|
||||
for c in classes:
|
||||
@ -73,7 +74,7 @@ def prec():
|
||||
precision[i] = 0 #division by zero
|
||||
i += 1
|
||||
|
||||
def avg_prec():
|
||||
def macro_prec():
|
||||
global precision_avg
|
||||
global precision
|
||||
for p in precision:
|
||||
@ -82,8 +83,8 @@ def avg_prec():
|
||||
|
||||
|
||||
def pp_confusionmatrix():
|
||||
print "\t\t"+classes[0][0]+"\t"+classes[1][0]+"\t"+classes[2][0]+"\t"+classes[3][0]+"\t"+classes[4][0]+"\t"+classes[5][0]+"\t"+classes[6][0]+"\t"+classes[7][0]+"\t"+classes[8][0]+"\t"+classes[9][0]+"\t"+classes[10][0]
|
||||
lines = [""+classes[0][0]+"\t",classes[1][0]+"\t",""+classes[2][0]+"\t",classes[3][0]+"\t\t",classes[4][0]+"\t",classes[5][0]+"\t\t",classes[6][0]+"\t\t",classes[7][0]+"\t\t",classes[8][0]+"\t\t",classes[9][0]+"\t\t",classes[10][0]+"\t\t"]
|
||||
print "is\classed\t"+classes[0][0]+"\t"+classes[1][0]+"\t"+classes[2][0]+"\t"+classes[3][0]+"\t\t"+classes[4][0]+"\t"+classes[5][0]+"\t\t"+classes[6][0]+"\t\t"+classes[7][0]+"\t\t"+classes[8][0]+"\t\t"+classes[9][0]+"\t\t"+classes[10][0]
|
||||
lines = [classes[0][0]+"\t",classes[1][0]+"\t",classes[2][0]+"\t",classes[3][0]+"\t\t",classes[4][0]+"\t",classes[5][0]+"\t\t",classes[6][0]+"\t\t",classes[7][0]+"\t\t",classes[8][0]+"\t\t",classes[9][0]+"\t\t",classes[10][0]+"\t\t"]
|
||||
for column in conf_matr:
|
||||
lines[0] += str(column[0]) + "\t\t"
|
||||
lines[1] += str(column[1]) + "\t\t"
|
||||
@ -107,20 +108,48 @@ def pp_prec():
|
||||
line = "Precision per class: "
|
||||
i = 0
|
||||
for p in precision:
|
||||
line += classes[i][0]+":"+str(round(p*100,4))+" "
|
||||
line += classes[i][0]+":"+str(round(p*100,4))+"% "
|
||||
i += 1
|
||||
print line
|
||||
|
||||
def pp_macroprec():
|
||||
print "Precision Macroavg: "+str(round(precision_avg*100,4))+"%"
|
||||
|
||||
def recall():
|
||||
i = 0
|
||||
for c in classes:
|
||||
ok_values = 0
|
||||
not_okvalues = 0
|
||||
j = 0
|
||||
for conf in conf_matr:
|
||||
if j == i:
|
||||
ok_values = conf[i]
|
||||
else:
|
||||
not_okvalues += conf[i]
|
||||
j += 1
|
||||
recalls[i] = float(ok_values) / float(not_okvalues)
|
||||
i += 1
|
||||
|
||||
def pp_recall():
|
||||
i = 0
|
||||
line = "Recall per class: "
|
||||
for c in classes:
|
||||
line += c[0]+":"+str(round(recalls[i]*100,4))+"% "
|
||||
i += 1
|
||||
print line
|
||||
|
||||
if __name__ == '__main__':
|
||||
load_predictionfile(predfile)
|
||||
#print preds
|
||||
confusion_matrix()
|
||||
pp_confusionmatrix()
|
||||
#print conf_matr
|
||||
accuracy()
|
||||
pp_accuracy()
|
||||
prec()
|
||||
pp_prec()
|
||||
avg_prec()
|
||||
print precision_avg
|
||||
pp_prec()
|
||||
macro_prec()
|
||||
pp_macroprec()
|
||||
recall()
|
||||
pp_recall()
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user