Training, Validation, Test

Indice

Un flusso di lavoro standard di machine learning comprende le fasi di training, validation e test, che richiedono la divisione del dataset originale in sottogruppi usati per ciascuna di queste fasi. Durante la fase di training, il modello apprende i pattern presenti nei dati, regolando i suoi parametri per minimizzare gli errori predittivi. Nella fase di validation, le prestazioni del modello vengono valutate su un dataset separato, utilizzato per ottimizzare gli iperparametri e prevenire l’overfitting.

Il concetto di “validation” viene spesso frainteso e termini come “validation set” e “test set” vengono talvolta usati in modo intercambiabile, nonostante abbiano scopi distinti. Il training set serve per sviluppare il modello, mentre il validation set viene usato per regolare i parametri e prevenire l’overfitting durante lo sviluppo del modello.

Nella fase di test, le prestazioni finali del modello vengono misurate su un dataset indipendente, non utilizzato né nel training né nella validation, per valutarne la capacità di generalizzare su nuovi dati. 

training

Validation

La validazione consiste nel processo di affinamento dell’architettura del modello e della regolazione degli iperparametri per prevenire l’overfitting. Questo avviene utilizzando un dataset indipendente, distinto dal training set, o tramite tecniche come la cross-validation, in cui il modello viene eseguito più volte su diversi sottogruppi del training set. Questo aiuta a garantire che il modello non si adatti troppo strettamente ai pattern specifici dei dati di training, migliorandone la capacità di generalizzare su dati nuovi e mai visti in precedenza.

Esistono diverse tecniche di validazione, ognuna con vantaggi e svantaggi. L’approccio più semplice consiste nel valutare il modello su un sottogruppo di dati messo da parte appositamente a tale scopo (holdout dataset). Tuttavia, in pratica, si preferiscono spesso metodi di resampling, che prevedono di prelevare ripetutamente campioni dal training set e adattare nuovamente il modello a ciascun campione, al fine di ottenere informazioni aggiuntive sul modello.

Una volta definiti i dataset di training e validation, è fondamentale verificare che le distribuzioni delle loro feature siano simili. Questo garantisce che i pattern osservati nei dati di training siano probabilmente presenti anche nei dati di validation. Per confrontare mediane o distribuzioni, si utilizzano comunemente test univariati come il Mann–Whitney U, il Kolmogorov–Smirnov o il Shapiro–Wilk.

Questi test sono non supervisionati, il che significa che non utilizzano i dati relativi all’outcome e non violano la regola di riservare il validation set esclusivamente per il testing del modello. 

Senza titolo

Metodi di Validazione

  • (A) Validazione Holdout Il dataset è diviso casualmente in due parti: un training set e un validation set (o holdout set). Il modello viene addestrato sul training set e successivamente utilizzato per predire le risposte delle osservazioni nel validation set. L’errore calcolato sul validation set fornisce una stima dell’errore del test. Il rapporto di suddivisione è solitamente 70/30 o 80/20.
  • (B) Cross-Validation. Il dataset viene suddiviso in k sottoinsiemi di dimensioni uguali (folds, solitamente k = 5 o 10). Il modello viene addestrato k volte, utilizzando ogni volta k-1 folds per il training e il restante fold per la validazione. Le prestazioni del modello vengono poi mediate sulle k iterazioni, fornendo una stima più robusta e affidabile.
  • (C) Leave-One-Out Cross-Validation (LOOCV) Una forma estrema di cross-validation in cui k è pari al numero di osservazioni nel dataset. Ogni osservazione viene utilizzata una volta come validation set, mentre le rimanenti n-1 osservazioni vengono usate per l’addestramento.
  • (D) Bootstrap Dal dataset originale, n osservazioni vengono selezionate casualmente con ripetizione per produrre B bootstrap datasets (B solitamente tra 100 e 1000). Il modello viene addestrato su ciascun bootstrap sample e validato sui dati non inclusi in quel campione (out-of-bag samples). Le prestazioni del modello vengono mediate sui vari cicli di bootstrap, fornendo una stima della sua capacità di generalizzazione.

Test del Modello e Metriche di Prestazione

Il test dei modelli nel machine learning è una fase cruciale per garantire la loro efficacia e capacità di generalizzazione. L’utilizzo di un test set esterno, separato e non correlato ai dati di training e validation, è essenziale per valutare come il modello si comporta su dati nuovi a cui non ha mai avuto acceesso, fornendo così una stima affidabile della sua capacità di generalizzare.

Inoltre, la creazione di un test set prospettico consente una valutazione continua delle prestazioni del modello man mano che nuovi dati diventano disponibili.

L’utilizzo di metriche di prestazione appropriate è fondamentale per valutare l’efficacia dei modelli. Le metriche di prestazione aiutano a misurare non solo l’accuratezza generale, ma anche aspetti specifici come la sensibilità, la specificità o l’area sotto la curva ROC, a seconda del contesto e del tipo di modello analizzato.

Per i compiti di regressione

  • Errore standard residuo (RSE): misura la deviazione media degli errori di previsione.
  • Statistica R²: valuta quanto la variabilità dei dati è spiegata dal modello.
  • Statistica F: confronta il modello attuale con un modello senza predittori per verificare la qualità dell’adattamento.

Per i compiti di classificazione

  • Sensibilità (Recall): capacità di identificare correttamente i casi positivi.
  • Specificità: capacità di riconoscere i casi negativi.
  • Accuratezza: percentuale di predizioni corrette complessive.
  • Precisione: proporzione di risultati positivi corretti tra quelli previsti come positivi.
  • F1-score: bilancia precisione e sensibilità.
  • AUC-ROC: valuta la capacità di discriminare tra classi attraverso diverse soglie.