Added code to visualise f1 scores to open set error
Signed-off-by: Jim Martens <github@2martens.de>
This commit is contained in:
@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user