← Lesson
Metrics That Matter
Joeven
Run
Reset
Python loads on first run
# 1 = needs human, 0 = agent can finish y_true = [0, 0, 0, 0, 0, 0, 0, 1, 1, 1] y_pred = [0, 0, 0, 0, 0, 1, 0, 1, 0, 1] # missed one, one false alarm def counts(y_true, y_pred): tp = fp = tn = fn = 0 for t, p in zip(y_true, y_pred): if t == 1 and p == 1: tp += 1 elif t == 0 and p == 1: fp += 1 elif t == 0 and p == 0: tn += 1 else: fn += 1 return tp, fp, tn, fn tp, fp, tn, fn = counts(y_true, y_pred) acc = (tp + tn) / len(y_true) prec = tp / (tp + fp) if tp + fp else 0.0 rec = tp / (tp + fn) if tp + fn else 0.0 f1 = 2 * prec * rec / (prec + rec) if prec + rec else 0.0 print("TP", tp, "FP", fp, "TN", tn, "FN", fn) print("accuracy", acc) print("precision", round(prec, 3), "recall", round(rec, 3), "F1", round(f1, 3)) always_no = [0] * len(y_true) tp2, fp2, tn2, fn2 = counts(y_true, always_no) print("always-no accuracy", (tp2 + tn2) / len(y_true), "recall", 0.0)
Run to execute this in your browser. Nothing is sent to a server.