@DennisSoemers ma świetne rozwiązanie. Dodam dwa podobne rozwiązania, które są nieco bardziej jednoznaczne i oparte na inżynierii cech i selekcji: praktyczne podejście do modeli predykcyjnych autorstwa Maxa Kuhna i Kjella Johnsona.
Kuhn używa tego terminu resample
do opisania fold
zestawu danych, ale wydaje się fold
, że dominującym terminem na StackExchange jest , więc użyję tego terminu fold
poniżej.
Opcja 1 - wyszukiwanie zagnieżdżone
Jeśli moc obliczeniowa nie jest czynnikiem ograniczającym, zalecane jest podejście sprawdzania zagnieżdżenia, w którym istnieją 3 poziomy zagnieżdżania:
1) zewnętrzne zagięcia, każde zagięcie z innym podzbiorem cech
2) fałdy wewnętrzne, każda fałda z wyszukiwaniem hiperparametrów
3) wewnętrzne fałdy każdego wyszukiwania hiperparametrów, każdy fałd z innym zestawem hiperparametrów.
Oto algorytm:
-> Split data into train and test sets.
-> For each external fold of train set:
-> Select feature subset.
-> Split into external train and test sets.
-> For each internal fold of external train set:
-> Split into internal train and test sets.
-> Perform hyperparameter tuning on the internal train set. Note that this
step is another level of nesting in which the internal train set is split
into multiple folds and different hyperparameter sets are trained and tested on
different folds.
-> Examine the performance of the best hyperparameter tuned model
from each of the inner test folds. If performance is consistent, redo
the internal hyperparameter tuning step on the entire external train set.
-> Test the model with the best hyperparameter set on the external test set.
-> Choose the feature set with the best external test score.
-> Retrain the model on all of the training data using the best feature set
and best hyperparameters for that feature set.
Zdjęcie z rozdziału 11.2: Proste filtry
-> Select feature subset
Krok zakłada się być przypadkowe, ale istnieją inne techniki, które są opisane w tej książce w rozdziale 11 .
Aby to wyjaśnić -> Perform hyperparameter tuning step
, możesz przeczytać o zalecanym podejściu do sprawdzania poprawności zagnieżdżonej . Chodzi o to, aby przetestować solidność procesu szkoleniowego poprzez wielokrotne przeprowadzanie procesu szkoleniowego i testowego na różnych fałdach danych i sprawdzanie średniej wyników testów.
Opcja 2 - oddzielne wyszukiwanie hiperparametrów i funkcji
-> Split data into hyperameter_train, feature_selection_train, and test sets.
-> Select a reasonable subset of features using expert knowledge.
-> Perform nested cross validation with the initial features and the
hyperparameter_train set to find the best hyperparameters as outlined in option 1.
-> Use the best hyperparameters and the feature_selection_train set to find
the best set of features. Again, this process could be nested cross
validation or not, depending on the computational cost that it would take
and the cost that is tolerable.
Oto jak Kuhn i Johsnon frazują ten proces:
Łącząc globalną metodę wyszukiwania z modelem, który ma parametry dostrajania, zalecamy, jeśli to możliwe, najpierw zestaw funkcji, korzystając z wiedzy eksperckiej na temat problemu. Następnie ważne jest określenie rozsądnego zakresu wartości parametrów strojenia. Jeśli dostępna jest wystarczająca liczba próbek, część z nich można podzielić i wykorzystać do znalezienia zakresu potencjalnie dobrych wartości parametrów przy użyciu wszystkich funkcji. Wartości parametrów strojenia mogą nie być idealnym wyborem dla podzbiorów cech, ale powinny być dość skuteczne w poszukiwaniu optymalnego podzbioru.
Rozdział 12.5: Globalne metody wyszukiwania