Die Frage steht unter einer falschen Annahme. Viele Menschen tun, was Sie sagen, dass sie "nicht können".
In der Tat, die Rastersuche tut Implementierung in dem weit verbreiteten sklearn Paket genau das. Es sei denn refit=False
, das endgültige Modell wird unter Verwendung der gesamten Daten neu trainiert.
Ich denke, für einige Hyperparameter ist dies möglicherweise nicht sehr wünschenswert, da sie relativ zum Datenvolumen sind. Betrachten Sie beispielsweise die min_samples_leaf
Vorbeschneidungstaktik für einen Entscheidungsbaum . Wenn Sie über mehr Daten verfügen, wird die Vorbereinigung möglicherweise nicht wie gewünscht ausgeführt.
Aber auch hier trainieren die meisten Menschen nach der Kreuzvalidierung die gesamten Daten neu, damit sie das bestmögliche Modell erhalten.
Nachtrag: @NeilSlater sagt weiter unten, dass einige Leute zusätzlich zum Lebenslauf einen Hold-out durchführen. Mit anderen Worten, sie haben eine Aufteilung des Zugtests und führen dann eine Modellauswahl für das Training durch. Ihm zufolge trainieren sie mit dem ursprünglichen Trainingssatz, aber nicht mit dem Testsatz. Der Testsatz wird dann verwendet, um eine endgültige Modellschätzung durchzuführen. Persönlich sehe ich drei Mängel: (a) Es löst nicht das Problem, das ich erwähnt habe, da einige Hyperparameter vom Trainingsvolumen abhängen, da Sie sowieso neu trainieren. (B) Wenn Sie viele Modelle testen, bevorzuge ich anspruchsvollere Methoden wie verschachtelte Kreuzvalidierung, damit keine Daten verschwendet werden, und (c) Hold-out ist eine schreckliche Methode, um zu schließen, wie sich ein Modell verallgemeinert, wenn Sie nur wenige Daten haben.