Synthèse et mise en production légère
Une fonction de prédiction encapsulée
Section titled “Une fonction de prédiction encapsulée”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.656probabilite de retard - client Services fiable: 0.227predict_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 %.
Bilan du module
Section titled “Bilan du module”Ce module a couvert un pipeline de classification complet, avec deux vrais pièges rencontrés en le construisant :
- 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).
- Split par groupe (
GroupShuffleSplit) plutôt que par ligne, dès qu’une entité produit plusieurs observations. - Une feature à forte cardinalité peut recevoir une importance trompeuse dans un RandomForest — à questionner avant de la garder.
- 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.
Ce qui reste à explorer
Section titled “Ce qui reste à explorer”- 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.
Prochaine étape
Section titled “Prochaine étape”👉 Module 5 : Clustering & optimisation
Junior TSAFACK – 12/09/2026