Pipeline scikit-learn sans fuite de données
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"]Pipelineavec 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)puisroc_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
- Découpage stratifié et reproductible
- Pipeline sans fuite
- Résultats