Added code to visualise f1 scores to open set error

Signed-off-by: Jim Martens <github@2martens.de>
This commit is contained in:
2019-07-24 12:51:42 +02:00
parent 761f6124e0
commit 84adbe21fe

View File

@ -101,7 +101,8 @@ def visualise(args: argparse.Namespace) -> None:
def visualise_metrics(args: argparse.Namespace) -> None: def visualise_metrics(args: argparse.Namespace) -> None:
output_path, evaluation_path = _visualise_metrics_get_config_values(conf.get_property) output_path, evaluation_path = _visualise_metrics_get_config_values(conf.get_property)
output_path, metrics_file = _visualise_metrics_prepare_paths(args, output_path, evaluation_path) output_path, metrics_file = _visualise_metrics_prepare_paths(args, output_path, evaluation_path)
_visualise_metrics(_visualise_precision_recall, output_path, metrics_file) _visualise_metrics(_visualise_precision_recall, _visualise_ose_f1,
output_path, metrics_file)
def measure_mapping(args: argparse.Namespace) -> None: def measure_mapping(args: argparse.Namespace) -> None:
@ -429,6 +430,7 @@ def _visualise_gt(args: argparse.Namespace,
def _visualise_metrics(visualise_precision_recall: callable, def _visualise_metrics(visualise_precision_recall: callable,
visualise_ose_f1: callable,
output_path: str, output_path: str,
metrics_file: str) -> None: metrics_file: str) -> None:
import pickle import pickle
@ -445,7 +447,16 @@ def _visualise_metrics(visualise_precision_recall: callable,
recall_macro = metrics["cumulative_recall_macro"] recall_macro = metrics["cumulative_recall_macro"]
visualise_precision_recall(precision_macro, recall_macro, visualise_precision_recall(precision_macro, recall_macro,
output_path, "macro") output_path, "macro")
f1_scores_micro = metrics["f1_scores_micro"]
cumulative_ose = metrics["cumulative_open_set_error"]
visualise_ose_f1(cumulative_ose, f1_scores_micro,
output_path, "micro")
f1_scores_macro = metrics["f1_scores_macro"]
visualise_ose_f1(cumulative_ose, f1_scores_macro,
output_path, "macro")
# TODO add further metrics # TODO add further metrics
@ -1020,6 +1031,20 @@ def _visualise_precision_recall(precision: np.ndarray, recall: np.ndarray,
pyplot.close(figure) pyplot.close(figure)
def _visualise_ose_f1(open_set_error: np.ndarray, f1_scores: np.ndarray,
output_path: str, file_suffix: str) -> None:
from matplotlib import pyplot
figure = pyplot.figure()
pyplot.ylabel("absolute ose")
pyplot.xlabel("f1 score")
pyplot.plot(f1_scores, open_set_error)
pyplot.savefig(f"{output_path}/ose-f1-{file_suffix}.png")
pyplot.close(figure)
def _auto_encoder_train(args: argparse.Namespace) -> None: def _auto_encoder_train(args: argparse.Namespace) -> None:
import os import os