TRIGNUM-300M / evaluator.py
Codfskitraceon's picture
Upload 24 files
7c48757 verified
from dataclasses import dataclass
from typing import List
@dataclass
class EvalResult:
dataset: str
tp: int
fp: int
tn: int
fn: int
precision: float
recall: float
f1: float
accuracy: float
class Evaluator:
@staticmethod
def compute_metrics(tp: int, fp: int, tn: int, fn: int) -> EvalResult:
precision = tp / max(tp + fp, 1)
recall = tp / max(tp + fn, 1)
f1 = 2 * precision * recall / max(precision + recall, 1e-9)
accuracy = (tp + tn) / max(tp + tn + fp + fn, 1)
return EvalResult("unknown", tp, fp, tn, fn, precision, recall, f1, accuracy)