Pytanie jest błędne. Wiele osób robi to, co mówisz, że „nie może”.
W rzeczywistości implementacja wyszukiwania siatki w szeroko wdrażanym pakiecie sklearn właśnie to robi. Chyba refit=False
że przekwalifikuje ostateczny model z wykorzystaniem całych danych.
Myślę, że w przypadku niektórych hiperparametrów może to nie być bardzo pożądane, ponieważ są one względne w stosunku do ilości danych. Rozważmy na przykład min_samples_leaf
taktykę wstępnego przycinania drzewa decyzyjnego . Jeśli masz więcej danych, wstępne przycinanie może nie działać tak, jak chcesz.
Ale znowu, większość ludzi w rzeczywistości przekwalifikowuje się, wykorzystując całe dane po weryfikacji krzyżowej, aby uzyskać najlepszy możliwy model.
Dodatek: @NeilSlater mówi poniżej, że niektóre osoby powstrzymują się przed CV. Innymi słowy, dzielą test na pociąg, a następnie dokonują wyboru modelu podczas szkolenia. Według niego, ponownie trenują, używając oryginalnego zestawu treningowego podzielonego, ale nie zestawu testowego. Zestaw testowy jest następnie wykorzystywany do ostatecznego oszacowania modelu. Osobiście widzę w tym trzy wady: (a) nie rozwiązuje problemu, o którym wspomniałem, ponieważ niektóre hiperparametry zależą od wielkości treningu, ponieważ i tak trenujesz ponownie, (b) podczas testowania wielu modeli wolę bardziej wyrafinowane metody takie jak zagnieżdżona weryfikacja krzyżowa, aby żadne dane nie zostały zmarnowane, oraz (c) wstrzymanie jest okropną metodą wnioskowania o tym, jak model uogólni się, gdy będzie mało danych.