Exercice 84 / 100

ML — Métriques

ConsigneÉvalue un modèle avec précision, rappel, F1-score

📖 Cours

Pour évaluer un classifieur, l'accuracy seule ne suffit pas — surtout si les classes sont déséquilibrées. Voici les métriques essentielles.

Matrice de confusion

Pour une classif binaire (positif = 1, négatif = 0) :

Prédit 0 Prédit 1 Réel 0 TN FP Réel 1 FN TP
TP vrai positif correctement prédit positifTN vrai négatif correctement prédit négatifFP faux positif prédit positif à tort ("fausse alerte")FN faux négatif prédit négatif à tort ("manqué")
La matrice de confusion croise ce qui est réel et ce qui est prédit : la précision se lit sur la colonne des positifs prédits, le rappel sur la ligne des positifs réels
La matrice de confusion croise ce qui est réel et ce qui est prédit : la précision se lit sur la colonne des positifs prédits, le rappel sur la ligne des positifs réels
from sklearn.metrics import confusion_matrixcm = confusion_matrix(y_true, y_pred)tn, fp, fn, tp = cm.ravel()

Les 3 métriques de base

Précision = TP / (TP + FP) "parmi mes prédictions positives, combien sont vraies ?" → minimise les fausses alertes
Rappel (Recall, Sensitivity) = TP / (TP + FN) "parmi les cas réellement positifs, combien en ai-je trouvé ?" → minimise les manqués
F1-score = 2 × (precision × recall) / (precision + recall) moyenne harmonique : pénalise si l'une est faible

Quand privilégier laquelle ?

Détection de cancer (FN catastrophique) → optimiser le RAPPELFiltre anti-spam (FP gênant) → optimiser la PRÉCISIONCompromis général → F1

Exemple complet

from sklearn.metrics import confusion_matrix, precision_score, recall_score, f1_score
y_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}')

Autres métriques utiles

ROC-AUC qualité globale d'un classifieur, indépendant du seuilPR-AUC préféré pour classes très déséquilibrées
classification_report
affiche precision/recall/F1 par classe

Toujours 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 →