diff --git a/epdb/models.py b/epdb/models.py index d2cc8d70..81c3f494 100644 --- a/epdb/models.py +++ b/epdb/models.py @@ -2815,6 +2815,21 @@ class PackageBasedModel(EPModel): ) multigen_eval = models.BooleanField(null=False, blank=False, default=False) + def statistics(self): + return { + 'accuracy': [ + self.eval_results["average_accuracy"], + self.eval_results.get("multigen_average_accuracy")], + 'precision': [ + self.eval_results["average_precision_per_threshold"][f"{self.threshold:.2f}"], + self.eval_results.get("multigen_average_precision_per_threshold", {}).get(f"{self.threshold:.2f}") + ], + 'recall': [ + self.eval_results["average_recall_per_threshold"][f"{self.threshold:.2f}"], + self.eval_results.get("multigen_average_recall_per_threshold", {}).get(f"{self.threshold:.2f}") + ], + } + @property def pr_curve(self): if self.model_status != self.FINISHED: diff --git a/templates/objects/model/classification_model.html b/templates/objects/model/classification_model.html index 9a484ff4..a68c3109 100644 --- a/templates/objects/model/classification_model.html +++ b/templates/objects/model/classification_model.html @@ -313,6 +313,44 @@ {% endif %} + + +
+ +
Model Statistics for threshold {{ model.threshold }}
+
+
+
+ + + + + + {% if model.multigen_eval %} + + {% endif %} + + + + {% for metric, value in model.statistics.items %} + + + + {% if model.multigen_eval %} + + {% endif %} + + {% endfor %} + +
MetricSingle Gen ValueMulti Gen Value
{{ metric|upper }}{{ value.0|floatformat:3 }}{{ value.1|floatformat:3 }}
+
+
+
+
+ {% endif %}