Der Testsatz und der Kreuzvalidierungssatz haben unterschiedliche Zwecke. Wenn Sie eine fallen lassen, verlieren Sie ihre Vorteile:
Das Kreuzvalidierungsset wird verwendet, um Überanpassung zu erkennen und die Suche nach Hyperparametern zu unterstützen.
Mit dem Testset wird die Leistung des Modells gemessen.
Sie können das Kreuzvalidierungsset nicht verwenden, um die Leistung Ihres Modells genau zu messen, da Sie Ihre Ergebnisse absichtlich optimieren , um die bestmögliche Metrik zu erhalten, möglicherweise über Hunderte von Variationen Ihrer Parameter. Das Kreuzvalidierungsergebnis dürfte daher zu optimistisch sein.
Aus dem gleichen Grund können Sie das Kreuzvalidierungsset nicht verwerfen und das Testset nicht zur Auswahl von Hyperparametern verwenden, da Sie so gut wie garantiert überschätzen, wie gut Ihr Modell ist. In der idealen Welt verwenden Sie das Test-Set nur einmal oder "neutral", um verschiedene Experimente zu vergleichen.
Wenn Sie eine Kreuzvalidierung durchführen, das beste Modell finden und dann die Testdaten zum Trainieren hinzufügen, ist es möglich (und in einigen Situationen möglicherweise sehr wahrscheinlich), dass Ihr Modell verbessert wird. Sie können jedoch nicht sicher sein, ob dies tatsächlich geschehen ist, und selbst wenn dies der Fall ist, haben Sie keine unvoreingenommene Einschätzung der neuen Leistung.
Ich habe viele Kaggle-Wettbewerbe miterlebt und habe die Erfahrung gemacht, dass es eine echte Sache ist, sich auf das Test-Set einzustellen, indem man es überbeansprucht. Es gibt oft eine Gruppe von Wettbewerbern, die die öffentliche Rangliste erklommen und im Test ihr bestes Modell ausgewählt haben (die öffentliche Rangliste ist im Grunde genommen ein Testsatz), während sie bei der Kreuzvalidierung nicht ganz so gründlich sind. . . Diese Wettbewerber fallen aus der Rangliste heraus, wenn am Ende ein neues Test-Set eingeführt wird.
Ein sinnvoller Ansatz besteht darin, Daten (train + cv) erneut zu verwenden, um sie vor dem Testen mit den gefundenen Hyperparametern zu trainieren. Auf diese Weise können Sie mehr Daten trainieren und erhalten am Ende dennoch ein unabhängiges Maß für die Leistung.
Wenn Sie mehr aus der Kreuzvalidierung herausholen möchten, ist der übliche Ansatz die k-fache Kreuzvalidierung . Ein häufiger Trick bei Kaggle-Wettbewerben ist die Verwendung der k-fachen Kreuzvalidierung. Anstatt die Daten erneut zu einem größeren Trainingssatz (Zug + Lebenslauf) zu kombinieren, werden die Lebenslaufergebnisse zu einem Metamodell zusammengefasst oder gestapelt.
Überprüfen Sie abschließend immer, ob Ihre Aufteilungen für die Validierung und den Test gegenüber einer möglichen Korrelation innerhalb Ihres Datensatzes stabil sind.