La validazione incrociata è una tecnica per stimare l’errore fuori campione di un modello ripetendo addestramento e valutazione su suddivisioni diverse dei dati. Serve a rispondere a una domanda essenziale: quanto ci si aspetta che il modello funzioni su dati nuovi, non usati per stimarne i parametri o scegliere gli iperparametri?
Nel k-fold cross-validation il dataset viene diviso in k blocchi, detti fold. Per ogni iterazione si addestra il modello su k-1 fold e lo si valuta sul fold rimasto fuori. L’errore di validazione incrociata è poi la media degli errori ottenuti:
dove L_j è la perdita calcolata sul fold di test della j-esima iterazione. La perdita può essere errore quadratico medio, errore assoluto, log-loss, accuratezza, AUC o una metrica coerente con il problema.
Perché serve
Valutare un modello sugli stessi dati usati per addestrarlo produce una stima troppo ottimistica. Il modello può adattarsi a rumore, particolarità del campione o scelte di preprocessing. La validazione incrociata simula più volte il caso in cui il modello venga applicato a osservazioni non viste, usando in modo efficiente i dati disponibili.
È usata per confrontare modelli, scegliere iperparametri, stimare la capacità di generalizzazione e controllare l’overfitting. In regressione penalizzata, per esempio, può scegliere il parametro di regolarizzazione; negli alberi e nelle foreste può guidare profondità, numero di variabili candidate o criteri di arresto; nelle reti neurali può aiutare a confrontare architetture, anche se il costo computazionale può diventare elevato.
Varianti principali
Nel k-fold standard si usa spesso k=5 o k=10, compromesso tra costo e stabilità. Nella leave-one-out cross-validation ogni fold contiene una sola osservazione: si usa quasi tutto il campione per addestrare, ma il costo può essere alto e la varianza della stima non sempre favorevole. Nella repeated k-fold cross-validation la suddivisione viene ripetuta più volte con partizioni diverse, ottenendo una stima più stabile.
Per problemi di classificazione sbilanciata si usa la validazione stratificata, che conserva proporzioni simili delle classi in ogni fold. Per dati raggruppati, come misure multiple sullo stesso impianto o paziente, si usano group fold, in modo che tutte le osservazioni dello stesso gruppo restino nello stesso lato della separazione. Per serie temporali non si deve mescolare passato e futuro: si usano schemi temporali come rolling-origin o expanding window.
Data leakage
Ogni trasformazione appresa dai dati deve essere rifatta dentro ciascun ciclo di validazione. Standardizzazione, imputazione, selezione di feature, riduzione dimensionale, bilanciamento delle classi, scelta di soglie e tuning devono essere stimati solo sul training fold e poi applicati al validation fold. Se queste operazioni vengono svolte una volta sull’intero dataset prima della validazione, informazioni del test fold entrano nel training e l’errore stimato diventa troppo ottimistico.
Questo punto è cruciale nei workflow ingegneristici con segnali, immagini, sensori o dati di processo. Anche una trasformazione apparentemente innocua, come sottrarre la media globale o selezionare le feature più correlate alla risposta sull’intero dataset, può contaminare la valutazione.
Validazione annidata
Quando la validazione incrociata viene usata per scegliere iperparametri, la stima dell’errore ottenuta nello stesso ciclo non è più una valutazione imparziale del modello finale: è stata usata per prendere decisioni. Per separare tuning e valutazione si usa la validazione annidata.
Nella validazione annidata un ciclo interno sceglie iperparametri e modello, mentre un ciclo esterno valuta la procedura completa su fold non visti dal ciclo interno. È più costosa, ma fornisce una stima più realistica della prestazione attesa quando il processo di selezione del modello è parte del sistema.
Interpretazione
L’errore di validazione incrociata è una stima, non una garanzia. Dipende dalla rappresentatività del dataset, dalla modalità di suddivisione, dalla metrica scelta e dalla stabilità del modello. È utile riportare non solo la media, ma anche la dispersione tra fold, perché differenze piccole tra modelli possono non essere significative rispetto alla variabilità della procedura.
In applicazioni tecniche la metrica deve riflettere il costo reale dell’errore. Un modello con errore medio minore può essere peggiore se produce pochi errori estremi inaccettabili; una classificazione con alta accuratezza può essere inutile se sbaglia la classe rara ma critica. La validazione incrociata valuta ciò che viene misurato, non ciò che si vorrebbe implicitamente ottimizzare.
Errori comuni
Il primo errore è usare la cross-validation su dati temporalmente ordinati come se fossero indipendenti e scambiabili. Il secondo è fare feature selection o normalizzazione prima della suddivisione. Il terzo è scegliere il modello migliore su molte prove e poi riportare lo stesso errore medio come se fosse una valutazione finale indipendente.
Un quarto errore è ignorare la struttura di dipendenza. Se misure dello stesso componente finiscono sia nel training sia nel test fold, il modello può riconoscere il componente invece di generalizzare a componenti nuovi. In questi casi la validazione deve rispettare l’unità sperimentale corretta.
La validazione incrociata è quindi uno strumento centrale per stimare generalizzazione e controllare overfitting, ma la sua credibilità dipende dalla disciplina con cui viene costruita la separazione tra ciò che il modello può vedere e ciò che deve prevedere.