Machine Learning · Ensemble i dobór modelu
Pipeline scikit-learn i dobór modelu
Ensemble i dobór modelu
Wprowadzenie
Pipeline w scikit-learn (Pedregosa et al. 2011) to obiekt łączący kroki preprocessingu i estymator w jeden wywoływalny estimator. Dwie kluczowe rzeczy które rozwiązuje: (1) data leakage — gdy StandardScaler.fit() lub SimpleImputer.fit() liczy statystyki na całym zbiorze (włącznie z foldem walidacyjnym), to wycieka informacja z fold val do treningu; Pipeline wymusza fit TYLKO na fold treningowym w każdym foldzie cross-validation. (2) reproducible deployment — jeden serializowany Pipeline obejmuje cały preprocessing, więc to samo dzieje się na produkcji co w treningu. ColumnTransformer pozwala stosować różne preprocessing per kolumna (numeryczne → StandardScaler, kategoryczne → OneHotEncoder). Dobór modelu: GridSearchCV (exhaustive po siatce hiperparametrów), RandomizedSearchCV (losowe próbki z rozkładów; Bergstra & Bengio 2012 pokazali że dla wysokowymiarowych przestrzeni hiperparametrów random search jest bardziej efektywny niż grid). Nested cross-validation (Cawley & Talbot 2010) — outer CV ocenia generalizację, inner CV dobiera hiperparametry; rozwiązuje optimistic bias gdy używamy tych samych danych do tuningu i oceny.