Added per-class scores to visualise metrics

Signed-off-by: Jim Martens <github@2martens.de>
This commit is contained in:
2019-09-26 12:08:06 +02:00
parent 6b7c3c9172
commit dbe7b5d844

View File

@ -475,6 +475,25 @@ def _visualise_metrics(visualise_precision_recall: callable,
output_path, f"macro-{threshold}"
if use_entropy_threshold else "macro")
precision = metrics["cumulative_precisions"]
recall = metrics["cumulative_recalls"]
f1_scores = metrics["f1_scores"]
class_scores = {}
for i in range(1, conf_obj.parameters.nr_classes + 1):
if not len(f1_scores[i]):
continue
max_f1_score_index = np.argmax(f1_scores[i])
max_f1_score = f1_scores[i][max_f1_score_index]
precision_at_max_f1 = precision[i][max_f1_score_index]
recall_at_max_f1 = recall[i][max_f1_score_index]
class_scores[i] = {
"max_f1_score": max_f1_score,
"precision_at_max_f1": precision_at_max_f1,
"recall_at_max_f1": recall_at_max_f1
}
max_f1_score_micro_index = np.argmax(f1_scores_micro, axis=0)
max_f1_score_micro = f1_scores_micro[max_f1_score_micro_index]
precision_at_max_f1_micro = precision_micro[max_f1_score_micro_index]
@ -500,6 +519,7 @@ def _visualise_metrics(visualise_precision_recall: callable,
"precision_at_max_f1_macro": precision_at_max_f1_macro,
"recall_at_max_f1_macro": recall_at_max_f1_macro,
"ose_at_max_f1_macro": int(ose_at_max_f1_macro),
"class_scores": class_scores
}, file, indent=2)