ConsigneÉvalue un modèle avec précision, rappel, F1-score
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 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é")from sklearn.metrics import confusion_matrixcm = 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 cas réellement positifs, combien en ai-je 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 RAPPELFiltre anti-spam (FP gênant) → optimiser la PRÉCISIONCompromis 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 seuilPR-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 →