From 0a9d353c3b4e81309bfdcb09c2db21163c3e7fa1 Mon Sep 17 00:00:00 2001 From: mart-r Date: Wed, 20 Aug 2025 16:10:44 +0100 Subject: [PATCH 1/3] CU-869a6w9c7: Set f1 to 0 if precision and recall are 0 --- medcat-v2/medcat/stats/stats.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/medcat-v2/medcat/stats/stats.py b/medcat-v2/medcat/stats/stats.py index df17ec683..5a36fce1d 100644 --- a/medcat-v2/medcat/stats/stats.py +++ b/medcat-v2/medcat/stats/stats.py @@ -240,7 +240,10 @@ def finalise_report(self, epoch: int, do_print: bool = True): try: prec = self.tp / (self.tp + self.fp) rec = self.tp / (self.tp + self.fn) - f1 = 2 * (prec * rec) / (prec + rec) + if prec == 0 and rec == 0: + f1 = 0 + else: + f1 = 2 * (prec * rec) / (prec + rec) if do_print: print("Epoch: {}, Prec: {}, Rec: {}, F1: {}\n".format( epoch, prec, rec, f1)) From 098f2fa24441a957042e6a9882582ca3b44cd3c2 Mon Sep 17 00:00:00 2001 From: mart-r Date: Wed, 20 Aug 2025 16:12:27 +0100 Subject: [PATCH 2/3] CU-869a6w9c7: Set precision and recall to 0 in case of division by 0 --- medcat-v2/medcat/stats/stats.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/medcat-v2/medcat/stats/stats.py b/medcat-v2/medcat/stats/stats.py index 5a36fce1d..72c912497 100644 --- a/medcat-v2/medcat/stats/stats.py +++ b/medcat-v2/medcat/stats/stats.py @@ -238,8 +238,14 @@ def finalise_report(self, epoch: int, do_print: bool = True): Defaults to True. """ try: - prec = self.tp / (self.tp + self.fp) - rec = self.tp / (self.tp + self.fn) + if self.tp + self.fp == 0: + prec = 0 + else: + prec = self.tp / (self.tp + self.fp) + if self.tp + self.fp == 0: + rec = 0 + else: + rec = self.tp / (self.tp + self.fn) if prec == 0 and rec == 0: f1 = 0 else: From dd0d6a423cae759d11342a145d82b1c254829c08 Mon Sep 17 00:00:00 2001 From: mart-r Date: Wed, 20 Aug 2025 16:19:32 +0100 Subject: [PATCH 3/3] CU-869a6w9c7: Fix types (float over int) --- medcat-v2/medcat/stats/stats.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/medcat-v2/medcat/stats/stats.py b/medcat-v2/medcat/stats/stats.py index 72c912497..2b6c6a15d 100644 --- a/medcat-v2/medcat/stats/stats.py +++ b/medcat-v2/medcat/stats/stats.py @@ -239,15 +239,15 @@ def finalise_report(self, epoch: int, do_print: bool = True): """ try: if self.tp + self.fp == 0: - prec = 0 + prec = 0.0 else: prec = self.tp / (self.tp + self.fp) if self.tp + self.fp == 0: - rec = 0 + rec = 0.0 else: rec = self.tp / (self.tp + self.fn) if prec == 0 and rec == 0: - f1 = 0 + f1 = 0.0 else: f1 = 2 * (prec * rec) / (prec + rec) if do_print: