Python Scikit-Learn Workflow
Aktivierung
- Schlüsselwortauslöser: Die Aufgabe beinhaltet wesentlich scikit-learn Modellauswahl,
KFold,StratifiedKFold,GroupKFold,TimeSeriesSplit,cross_validate,GridSearchCV,RandomizedSearchCV, Lern-/Validierungskurven, PCA,sklearn.inspection,ColumnTransformeroderPipeline. - Absichtsauslöser: Der Benutzer fragt, wie ein scikit-learn Modell ohne Leck geteilt, vorverarbeitet, abgestimmt, diagnostiziert oder interpretiert werden kann.
- Offenlegung: Geben Sie einmalig zu Beginn der anwendbaren Arbeit kurz an:
Verwende $python-sklearn-workflow, da diese Aufgabe scikit-learn Evaluierung oder Vorverarbeitung beinhaltet. - Beenden: Stellen Sie die Anwendung dieses Skills ein, sobald die Verträge für Split, CV, Vorverarbeitung, Suche und Diagnose festgelegt sind.
- Nicht auslösen: Eine Abhängigkeitsaktualisierung, Experimentverfolgung wenn Splits/Tuning bereits festgelegt sind, gewöhnlicher
predict-Aufruf auf einem bereits angepassten Schätzer, reines Plotten aus bereits berechneten Vorhersagen, isolierte Schätzer-API-Frage, Deep-Learning-Pipeline oder beiläufiger Import sind nicht ausreichend. Plotten gehört hierher nur, wenn die Aufgabe die Bewertung, das Evaluierungsdesign, die Diagnosemethodik oder die Modellinspektion ändert.
Beginnen Sie mit der Evaluierungseinheit
Identifizieren Sie vor der Wahl eines Splitters, was zwischen Training und Evaluierung unabhängig bleiben muss:
- einzelne IID-Beobachtungen;
- Klassenlabels mit seltenen Ergebnissen;
- Benutzer, Patienten, Geräte, Sitzungen, Standorte oder andere Gruppen;
- chronologische zukünftige Beobachtungen; oder
- eine Kombination aus Klassenbalance und nicht überlappenden Gruppen.
Wählen Sie den Testsatz und die CV-Strategie basierend auf dieser Einheit, nicht basierend auf einem bevorzugten Standardprozentsatz. Lesen Sie references/model-selection-guide.md für Splitter- und Suchoptionen.
Halten Sie die Vorverarbeitung innerhalb der Falte
- Trennen Sie einen endgültigen Testsatz ab, bevor Sie Skalierer, Imputer, Encoder, Merkmalsselektoren, PCA oder andere gelernte Transformationen anpassen.
- Setzen Sie die gelernte Vorverarbeitung und den Schätzer in
Pipeline, sodass jeder CV-Fold Transformationen nur auf seinem Trainingspartition anpasst. - Verwenden Sie
ColumnTransformer, wenn numerische, kategoriale, Text- oder andere Spaltenteilmengen unterschiedliche Transformationen benötigen. - Durchsuchen Sie verschachtelte Parameter über Pipeline-Namen wie
preprocess__numeric__scalerodermodel__C. - Führen Sie keine manuelle Vorverarbeitung des gesamten Datensatzes vor
cross_val_score,cross_validate, Grid-Suche oder Randomisierter Suche durch.
Lesen Sie references/preprocessing-inspection.md für PCA, Inspektion und heterogene Spalten.
Wählen Sie Evaluierungs- und Suchwerkzeuge bewusst aus
- Verwenden Sie
cross_val_scorefür eine Metrik und einfache Fold-Scores. - Verwenden Sie
cross_validate, wenn mehrere Metriken, Trainingsscores, Anpassungs-/Bewertungszeiten oder zurückgegebene Schätzer tatsächlich benötigt werden. - Verwenden Sie
GridSearchCVfür ein kleines, diskretes, begründetes Parameterraster, bei dem erschöpfende Kombinationen in das Rechenbudget passen. - Verwenden Sie
RandomizedSearchCVfür größere Räume, Verteilungen oder ein festes Kandidatenbudget. Setzen Sien_iterund Parameterverteilungen bewusst. - Behalten Sie dieselbe CV-Semantik und denselben Bewertungsvertrag über Modellvergleiche hinweg bei. Übergeben Sie Gruppen/Metadaten korrekt, wenn der Splitter sie benötigt.
- Bewahren Sie einen unberührten Testsatz auf oder verwenden Sie eine geeignete verschachtelte Evaluierung, wenn die Modellauswahl alle Entwicklungsfalten verbraucht.
Fügen Sie Kurven und Inspektion hinzu, um eine Frage zu beantworten
- Verwenden Sie
learning_curve, um zu fragen, ob mehr Trainingsdaten wahrscheinlich die Trainings-/Validierungslücke verringern oder ob beide Scores ein Plateau erreicht haben. - Verwenden Sie
validation_curve, um das Trainings-/Validierungsverhalten eines Hyperparameters zu inspizieren. Es ist kein Ersatz für eine Mehrparametersuche oder abschließende Tests. - Verwenden Sie
sklearn.inspection.permutation_importance, um die Abhängigkeit der Bewertung eines angepassten Modells von Merkmalen zu messen, vorzugsweise auf zurückgehaltenen Daten, nachdem bestätigt wurde, dass das Modell eine nützliche Vorhersageleistung hat. - Verwenden Sie partielle Abhängigkeit oder ICE nur, wenn ihre Annahmen und die Merkmalsverteilung das Ergebnis interpretierbar machen.
- Fügen Sie Inspektionsplots nicht mechanisch hinzu. Definieren Sie zuerst die Debugging-, Zuverlässigkeits- oder Interpretierbarkeitsfrage.
Erforderliche Ausgabe
Geben Sie die unabhängige Evaluierungseinheit; Begründung für den Holdout-Anteil; ausgewählten CV-Splitter und Bewertung; Platzierung der Vorverarbeitung/PCA; Budget für Grid- oder Randomisierte Suche; ob Lern-/Validierungskurven eine konkrete Frage beantworten; Inspektionsmethode und Datensatz; Leckkontrollen; und den endgültigen unberührten Evaluierungspfad an.