Informazioni su Train, Validation e Test Sets nel Machine Learning
Il Ottobre 17, 2021 da adminQuesto ha lo scopo di essere una breve introduzione per chiunque abbia bisogno di conoscere la differenza tra le varie suddivisioni dei dataset durante l’addestramento dei modelli di Machine Learning.
Per questo articolo, citerei le definizioni di base dall’eccellente articolo di Jason Brownlee sullo stesso argomento, è abbastanza completo, controllate per maggiori dettagli.
Training Dataset: Il campione di dati usato per adattare il modello.
Il dataset effettivo che usiamo per addestrare il modello (pesi e bias nel caso di una Rete Neurale). Il modello vede e impara da questi dati.
Il dataset di validazione
Il dataset di validazione: Il campione di dati usato per fornire una valutazione imparziale di un modello adatto al set di dati di addestramento mentre si accordano gli iperparametri del modello. La valutazione diventa più distorta man mano che l’abilità sul dataset di convalida viene incorporata nella configurazione del modello.
Il set di convalida viene utilizzato per valutare un dato modello, ma questo per valutazioni frequenti. Noi, come ingegneri dell’apprendimento automatico, usiamo questi dati per mettere a punto gli iperparametri del modello. Quindi il modello vede occasionalmente questi dati, ma non “impara” mai da questi. Usiamo i risultati del set di validazione e aggiorniamo gli iperparametri di livello superiore. Quindi il set di convalida influenza il modello, ma solo indirettamente. Il set di convalida è anche conosciuto come Dev set o Development set. Questo ha senso perché questo set di dati aiuta durante la fase di “sviluppo” del modello.
Test Dataset
Test Dataset: Il campione di dati usato per fornire una valutazione imparziale di un modello finale adatto al dataset di allenamento.
Il dataset di test fornisce il gold standard usato per valutare il modello. Viene utilizzato solo una volta che un modello è stato completamente addestrato (utilizzando i set di allenamento e di validazione). Il set di test è generalmente quello che viene utilizzato per valutare i modelli concorrenti (per esempio in molte competizioni Kaggle, il set di convalida viene rilasciato inizialmente insieme al set di allenamento e il set di test effettivo viene rilasciato solo quando la competizione sta per concludersi, ed è il risultato del modello sul set di test che decide il vincitore). Molte volte il set di validazione viene usato come test set, ma non è una buona pratica. Il test set è generalmente ben curato. Contiene dati accuratamente campionati che abbracciano le varie classi che il modello dovrebbe affrontare, se usato nel mondo reale.
In merito al rapporto di suddivisione del dataset
Ora che sai cosa fanno questi dataset, potresti essere alla ricerca di raccomandazioni su come dividere il tuo dataset in Train, Validation e Test set.
Questo dipende principalmente da 2 cose. In primo luogo, il numero totale di campioni nei vostri dati e in secondo luogo, il modello attuale che state addestrando.
Alcuni modelli hanno bisogno di dati sostanziali su cui addestrarsi, quindi in questo caso dovreste ottimizzare per i set di allenamento più grandi. I modelli con pochi iperparametri saranno facili da convalidare e mettere a punto, quindi probabilmente si può ridurre la dimensione del set di convalida, ma se il modello ha molti iperparametri, si dovrebbe avere anche un grande set di convalida (anche se si dovrebbe anche considerare la convalida incrociata). Inoltre, se vi capita di avere un modello senza iperparametri o con quelli che non possono essere facilmente sintonizzati, probabilmente non avete bisogno di un set di convalida!
Tutto sommato, come molte altre cose nell’apprendimento automatico, il rapporto di divisione treno-test-validazione è anche abbastanza specifico per il vostro caso d’uso e diventa più facile giudicare man mano che vi addestrate e costruite sempre più modelli.
Nota sulla convalida incrociata: Molte volte, le persone prima dividono il loro set di dati in 2 – Train e Test. Dopo questo, tengono da parte il set di test, e scelgono casualmente l’X% del loro set di dati Train per essere l’attuale set Train e il restante (100-X)% per essere il set di validazione, dove X è un numero fisso (diciamo 80%), il modello viene poi iterativamente addestrato e validato su questi diversi set. Ci sono diversi modi per farlo, ed è comunemente noto come Cross Validation. Fondamentalmente si usa il proprio set di allenamento per generare più divisioni dei set di allenamento e di convalida. La validazione incrociata evita l’over fitting e sta diventando sempre più popolare, con la validazione incrociata K-fold che è il metodo più popolare di validazione incrociata. Guardate qui per saperne di più.
Lascia un commento