Skip to content

Le piège de l'accuracy sur des classes déséquilibrées

La leçon précédente a laissé un résultat troublant : le modèle (76,5 % d’accuracy) fait moins bien que la baseline « toujours à temps » (77,3 %). Cette leçon explique pourquoi ce chiffre est trompeur — exactement la mise en garde du module 1 : « l’accuracy est trompeuse sur des classes déséquilibrées ».

Avec seulement 23 % de factures en retard, une baseline qui prédit toujours « à temps » a mécaniquement raison 77 % du temps — sans jamais identifier un seul cas à risque. Son accuracy est flatteuse ; son utilité métier est nulle.

clf = RandomForestClassifier(n_estimators=200, random_state=42, class_weight="balanced")
clf.fit(X_train_scaled, y_train)
predictions = clf.predict(X_test_scaled)

class_weight="balanced" pénalise davantage les erreurs sur la classe minoritaire pendant l’entraînement, pour contrer le déséquilibre plutôt que le subir.

from sklearn.metrics import accuracy_score, recall_score, precision_score, f1_score
print("accuracy modele:", accuracy_score(y_test, predictions))
print("recall (retards detectes) - modele:", recall_score(y_test, predictions))
print("recall (retards detectes) - baseline:", recall_score(y_test, baseline_pred))
print("precision - modele:", precision_score(y_test, predictions))
print("f1 - modele:", f1_score(y_test, predictions))
print("f1 - baseline:", f1_score(y_test, baseline_pred))
accuracy modele: 0.6559
recall (retards detectes) - modele: 0.625
recall (retards detectes) - baseline: 0.0
precision - modele: 0.3535
f1 - modele: 0.4516
f1 - baseline: 0.0

L’accuracy du modèle chute encore (65,6 %) — mais son recall sur la classe « en retard » passe de 0 (la baseline n’en détecte structurellement aucun) à 62,5 %. Le f1-score, qui combine précision et rappel, passe de 0 à 0,45.

  • La baseline a une meilleure accuracy, mais un recall de 0 : elle ne signale jamais aucun risque. Pour le service recouvrement, c’est une baseline inutile, quel que soit son score.
  • Le modèle détecte 62,5 % des factures réellement à risque, au prix de quelques fausses alertes (précision 35 %) — un compromis raisonnable pour un outil de priorisation des relances, où le coût d’une vérification inutile est bien plus faible que celui d’un impayé non anticipé.

Une métrique n’est jamais neutre : elle encode implicitement ce qu’on considère comme une erreur acceptable. L’accuracy traite un faux positif et un faux négatif comme équivalents ; ici, ils ne le sont manifestement pas.

👉 Synthèse et mise en production légère


Junior TSAFACK – 12/09/2026