Il set di test e il set di convalida incrociata hanno scopi diversi. Se lasci cadere uno di questi, perdi i suoi benefici:
Non è possibile utilizzare il set di validazione incrociata per misurare le prestazioni del modello con precisione, perché si deliberatamente sintonizzare i risultati per ottenere la migliore possibile metrica, oltre forse centinaia di varianti dei vostri parametri. È quindi probabile che il risultato della convalida incrociata sia troppo ottimista.
Per lo stesso motivo, non è possibile eliminare il set di convalida incrociata e utilizzare il set di test per selezionare i parametri ipertestuali, perché in questo modo si è praticamente sicuri di sopravvalutare la qualità del modello. Nel mondo ideale utilizzi il set di test una sola volta o lo usi in modo "neutro" per confrontare diversi esperimenti.
Se esegui la convalida incrociata, trova il modello migliore, quindi aggiungi i dati del test per allenarti, è possibile (e in alcune situazioni forse abbastanza probabile) il tuo modello sarà migliorato. Tuttavia, non hai modo di essere sicuro che ciò sia effettivamente accaduto e, anche se lo è, non hai una stima imparziale di quale sia la nuova performance.
Dall'aver assistito a molte competizioni di Kaggle, la mia esperienza è che la messa a punto del test impostato con un uso eccessivo è una cosa reale e influisce su tali competizioni su larga scala. Spesso c'è un gruppo di concorrenti che hanno scalato la classifica pubblica e selezionato il loro miglior modello in prova (la classifica pubblica è effettivamente un set di test), pur non essendo così approfondita sulla loro validazione incrociata. . . questi concorrenti abbandonano la classifica quando viene introdotto un nuovo set di test alla fine.
Un approccio ragionevole è quello di riutilizzare i dati (train + cv) per riqualificare utilizzando gli hyper-params che hai trovato, prima del test. In questo modo ti alleni su più dati e alla fine ottieni ancora una misura indipendente delle prestazioni.
Se vuoi ottenere di più dalla validazione incrociata, l'approccio abituale è la validazione incrociata k-fold . Un trucco comune nelle competizioni di Kaggle è usare la validazione incrociata di k-fold e invece di ricombinare i dati in un set di addestramento più grande (train + cv), per raggruppare o impilare i risultati del cv in un meta-modello.
Infine, verifica sempre che le suddivisioni per la convalida e il test siano affidabili rispetto alla possibile correlazione all'interno del tuo set di dati.