Skip to content

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

Un modèle entraîné n’est utile que s’il peut être appliqué à un nouveau cas, en respectant exactement le même pipeline de transformation qu’à l’entraînement (mêmes colonnes, dans le même ordre, même scaler) — un principe déjà rencontré au module 3.

def predict_facture_risque(taux_retard_recent, ecart_taux_secteur, secteur):
row = {c: 0 for c in secteur_cols}
row[f"secteur_{secteur}"] = 1
row["taux_retard_recent"] = taux_retard_recent
row["ecart_taux_secteur"] = ecart_taux_secteur
X_row = np.array([[row[c] for c in feature_cols]])
X_row_scaled = scaler.transform(X_row)
return clf.predict_proba(X_row_scaled)[0, 1]
print("client BTP a risque:", predict_facture_risque(0.6, 0.3, "BTP"))
print("client Services fiable:", predict_facture_risque(0.0, -0.1, "Services"))
probabilite de retard - client BTP a risque: 0.656
probabilite de retard - client Services fiable: 0.227

predict_proba (plutôt que predict) renvoie une probabilité continue plutôt qu’une décision binaire — un choix délibéré pour ce cas d’usage : le service recouvrement peut ainsi trier ses relances par probabilité décroissante, plutôt que de recevoir une liste plate de « oui/non » qui masquerait la différence entre un risque de 51 % et un risque de 95 %.

Ce module a couvert un pipeline de classification complet, avec deux vrais pièges rencontrés en le construisant :

  1. Feature engineering temporel sans fuite d’information (règle du « jamais regarder le futur », déjà vue en filigrane dans les modules précédents).
  2. Split par groupe (GroupShuffleSplit) plutôt que par ligne, dès qu’une entité produit plusieurs observations.
  3. Une feature à forte cardinalité peut recevoir une importance trompeuse dans un RandomForest — à questionner avant de la garder.
  4. L’accuracy peut activement induire en erreur sur un problème déséquilibré : un modèle « moins précis » peut être le seul réellement utile, une fois qu’on regarde recall, précision et F1.
  • La permutation importance, pour une mesure d’importance des features moins biaisée que celle basée sur l’impureté.
  • Le réglage du seuil de décision (au lieu du 0,5 par défaut), pour arbitrer explicitement entre faux positifs et faux négatifs selon leur coût métier respectif.
  • La validation croisée (GroupKFold), pour une estimation de performance moins dépendante d’un seul découpage train/test.

👉 Module 5 : Clustering & optimisation


Junior TSAFACK – 12/09/2026