Pipeline scikit-learn sans fuite de données

Intermédiaire Linuxscikit-learn25 min50 XP

Le script ~/churn/entrainement.py normalise toutes les données avant de les découper (fuite d'information). Réécrivez-le :

  • train_test_split(X, y, test_size=0.2, stratify=y, random_state=42)
  • ColumnTransformer : StandardScaler() sur ["anciennete", "montant_mensuel"], OneHotEncoder(handle_unknown="ignore") sur ["offre", "region"]
  • Pipeline avec l'étape ("preparation", ...) puis ("modele", LogisticRegression(max_iter=1000))
  • validation croisée sur l'entraînement : cross_val_score(pipeline, X_train, y_train, cv=5, scoring="roc_auc")
  • évaluation finale unique sur le test : pipeline.fit(X_train, y_train) puis roc_auc_score

Exécutez python3 entrainement.py (depuis ~/churn) → AUC moyenne en validation croisée → answer cv <valeur> ; AUC sur le test → answer test <valeur>

Contenu Premium

Ce contenu est inclus dans l'offre Premium. Le titre et le résumé restent visibles pour vous aider à choisir.

Tâches

  1. Découpage stratifié et reproductible
  2. Pipeline sans fuite
  3. Résultats