Workflow Python Scikit-Learn
Activation
- Déclencheur par mot-clé : la tâche implique de manière substantielle la sélection de modèles scikit-learn,
KFold,StratifiedKFold,GroupKFold,TimeSeriesSplit,cross_validate,GridSearchCV,RandomizedSearchCV, les courbes d'apprentissage/validation, PCA,sklearn.inspection,ColumnTransformerouPipeline. - Déclencheur par intention : l'utilisateur demande comment diviser, prétraiter, régler, diagnostiquer ou interpréter un modèle scikit-learn sans fuite de données.
- Divulgation : une fois au début du travail applicable, indiquer brièvement :
Utilisation de $python-sklearn-workflow car cette tâche implique l'évaluation ou le prétraitement scikit-learn. - Sortie : cesser d'appliquer cette compétence lorsque les choix de division, de validation croisée, de prétraitement, de recherche et de diagnostic sont finalisés.
- Ne pas déclencher : une mise à jour de dépendance, un suivi d'expériences lorsque les divisions/réglages sont déjà fixés, un appel
predictordinaire sur un estimateur déjà ajusté, un tracé de rapport à partir de prédictions déjà calculées, une question isolée sur l'API d'un estimateur, un pipeline d'apprentissage profond, ou une importation incidente ne sont pas suffisants. Le tracé appartient ici uniquement lorsque la tâche modifie le scoring, la conception de l'évaluation, la méthodologie de diagnostic ou l'inspection du modèle.
Commencer par l'Unité d'Évaluation
Avant de choisir un séparateur, identifiez ce qui doit rester indépendant entre l'entraînement et l'évaluation :
- observations IID individuelles ;
- étiquettes de classe avec résultats rares ;
- utilisateurs, patients, appareils, sessions, emplacements ou autres groupes ;
- observations futures chronologiques ; ou
- une combinaison d'équilibre des classes et de groupes qui ne se chevauchent pas.
Choisissez l'ensemble de test et la stratégie de validation croisée à partir de cette unité, et non à partir d'un pourcentage par défaut préféré. Consultez references/model-selection-guide.md pour les choix de séparateur et de recherche.
Garder le Prétraitement à l'Intérieur du Plissement
- Séparez tout ensemble de test final avant d'ajuster les scalers, imputeurs, encodeurs, sélecteurs de caractéristiques, PCA ou autres transformations apprises.
- Placez le prétraitement appris et l'estimateur dans un
Pipelineafin que chaque pli de validation croisée ajuste les transformations uniquement sur sa partition d'entraînement. - Utilisez
ColumnTransformerlorsque des sous-ensembles de colonnes numériques, catégorielles, textuelles ou autres nécessitent des transformations différentes. - Recherchez les paramètres imbriqués via les noms du pipeline tels que
preprocess__numeric__scaleroumodel__C. - Ne prétraitez pas manuellement l'ensemble de données complet avant
cross_val_score,cross_validate, la recherche par grille ou la recherche aléatoire.
Consultez references/preprocessing-inspection.md pour PCA, inspection et colonnes hétérogènes.
Sélectionner les Outils d'Évaluation et de Recherche de Manière Réfléchie
- Utilisez
cross_val_scorepour une seule métrique et des scores de plis simples. - Utilisez
cross_validatelorsque plusieurs métriques, scores d'entraînement, temps d'ajustement/score ou estimateurs retournés sont réellement nécessaires. - Utilisez
GridSearchCVpour une grille de paramètres petite, discrète et justifiée où les combinaisons exhaustives correspondent au budget de calcul. - Utilisez
RandomizedSearchCVpour des espaces plus grands, des distributions ou un budget de candidats fixe. Définissezn_iteret les distributions de paramètres délibérément. - Conservez la même sémantique de validation croisée et le même contrat de scoring lors des comparaisons de modèles. Transmettez correctement les groupes/métadonnées lorsque le séparateur les requiert.
- Préservez un ensemble de test intact ou utilisez une évaluation imbriquée appropriée lorsque la sélection du modèle consomme tous les plis de développement.
Ajouter des Courbes et de l'Inspection pour Répondre à une Question
- Utilisez
learning_curvepour demander si davantage de données d'entraînement est susceptible de réduire l'écart entraînement/validation ou si les deux scores ont atteint un plateau. - Utilisez
validation_curvepour inspecter le comportement entraînement/validation d'un seul hyperparamètre. Ce n'est pas un remplacement pour une recherche multi-paramètres ou un test final. - Utilisez
sklearn.inspection.permutation_importancepour mesurer la dépendance du score d'un modèle ajusté aux caractéristiques, de préférence sur des données retenues après avoir confirmé que le modèle a une performance prédictive utile. - Utilisez la dépendance partielle ou ICE uniquement lorsque leurs hypothèses et la distribution des caractéristiques rendent le résultat interprétable.
- N'ajoutez pas de graphiques d'inspection mécaniquement. Définissez d'abord la question de débogage, de fiabilité ou d'interprétabilité.
Sortie Requise
Indiquez l'unité d'évaluation indépendante ; la justification de la proportion de conservation ; le séparateur de validation croisée et le scoring sélectionnés ; le placement du prétraitement/PCA ; le budget de recherche par grille ou aléatoire ; si les courbes d'apprentissage/validation répondent à une question concrète ; la méthode d'inspection et l'ensemble de données ; les contrôles de fuite ; et le chemin final d'évaluation intact.