← Tous les exercices
Précision et rappel d'une détection
Partie 1 · ★★
Le score dit qu'une image est inhabituelle, pas pourquoi. Pour juger la détection, on compte trois choses : les vraies alertes (vp), les fausses alertes (fp) et les anomalies ratées (fn). La précision répond à « parmi les alertes, combien sont de vraies anomalies ? » ; le rappel à « parmi les vraies anomalies, combien a-t-on trouvées ? ».
Complète metriques(y, alerte) (y = 1 pour une vraie anomalie, alerte = 1 pour une image signalée). Attention aux divisions par zéro : s'il n'y a aucune alerte, la précision vaut 0.
def metriques(y, alerte): vp = sum(1 for a, b in zip(y, alerte) if a == 1 and b == 1) fp = sum(1 for a, b in zip(y, alerte) if a == ___ and b == 1) fn = sum(1 for a, b in zip(y, alerte) if a == 1 and b == ___) precision = vp / (vp + ___) if vp + fp else 0 rappel = vp / (vp + ___) if vp + fn else 0 f1 = 2 * precision * rappel / (precision + rappel) if precision + rappel else 0 return precision, rappel, f1 y = [1, 1, 1, 1, 0, 0, 0, 0, 0, 0] alerte = [1, 1, 1, 0, 1, 1, 0, 0, 0, 0] precision, rappel, f1 = metriques(y, alerte)
Ctrl/⌘+Entrée