Pour évaluer un classifieur, l'accuracy seule ne suffit pas — surtout si les classes sont déséquilibrées. Voici les métriques essentielles.
Pour une classif binaire (positif = 1, négatif = 0) :
Prédit 0 Prédit 1
Réel 0 TN FP
Réel 1 FN TPTP vrai positif correctement prédit positif
TN vrai négatif correctement prédit négatif
FP faux positif prédit positif à tort ("fausse alerte")
FN faux négatif prédit négatif à tort ("manqué")from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_true, y_pred)
tn, fp, fn, tp = cm.ravel()Précision = TP / (TP + FP)
"parmi mes prédictions positives, combien sont vraies ?"
→ minimise les fausses alertesRappel (Recall, Sensitivity) = TP / (TP + FN)
"parmi les vrais positifs, combien j'ai trouvé ?"
→ minimise les manquésF1-score = 2 × (precision × recall) / (precision + recall)
moyenne harmonique : pénalise si l'une est faibleDétection de cancer (FN catastrophique) → optimiser le RAPPEL
Filtre anti-spam (FP gênant) → optimiser la PRÉCISION
Compromis général → F1from sklearn.metrics import confusion_matrix, precision_score, recall_score, f1_scorey_true = np.array([1, 0, 1, 1, 0, 1, 0, 0, 1, 1])
y_pred = np.array([1, 0, 1, 0, 0, 1, 1, 0, 1, 0])print(confusion_matrix(y_true, y_pred))
print(f'Precision: {precision_score(y_true, y_pred):.2f}')
print(f'Recall: {recall_score(y_true, y_pred):.2f}')
print(f'F1-score: {f1_score(y_true, y_pred):.2f}')ROC-AUC qualité globale d'un classifieur, indépendant du seuil
PR-AUC préféré pour classes très déséquilibréesToujours regarder la matrice de confusion avant de conclure. Une accuracy de 95% sur une classe à 5% positifs peut être... un modèle qui prédit toujours 0.
Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →