Validazione del modello — appunti completi
Fonte: Data Science · Modulo 3 — validazione del modello · Coursera · Prof. Park · 46 min
Perché dividere i dati
Lezione- Obiettivo: stimare come il modello performa su dati non visti — l'unica metrica che conta.
- Modalità di fallimento: se valuti solo su train, qualunque modello sembra buono (anche quelli scadenti).
- Principio hold-out: nessuna decisione (modello, iperparametri) deve vedere il test prima della valutazione finale.
Tre vie
Lezione- Train: per adattare i parametri del modello.
- Val: per regolare iperparametri e confrontare modelli — toccato spesso.
- Test: una sola volta alla fine per stimare la performance reale.
- Perché tre: se regoli sul test, diventa un secondo train — sovrastimi la generalizzazione.
Rapporti tipici
Lezione- 70/15/15: standard per dataset medi (1k–100k campioni).
- 80/10/10: comune con 10k–100k e CV su train.
- Big data 98/1/1: a 1M+ campioni, 1% sono ancora 10k — sufficienti per stime stabili.
Stratificazione
Lezione- Quando: ogni volta che hai squilibrio di classi o eventi rari.
- Come: preserva il rapporto di classi in ogni split — evita di finire in val con 0 positivi.
- Strumento: StratifiedKFold di sklearn o train_test_split(stratify=y).
Cross-validation
Lezione- k-fold: dividere train in k parti; addestrare su k-1, validare su 1; ruotare; mediare i k punteggi.
- k tipico: 5 o 10 — oltre i rendimenti calano.
- Serie temporali: finestra espandente o scorrevole — mai addestrare su dati futuri.
Overfitting
Lezione- Definizione: il modello memorizza rumore invece di apprendere il segnale.
- Segnale: l'accuratezza train sale mentre val stagna o cala.
- Rimedi: più dati, modello più semplice, L1/L2, dropout, early stopping, data augmentation.
Data leakage
Lezione- Pre-processing: fittare uno Scaler sull'intero dataset (val/test incluso) fa trapelare info di distribuzione.
- Soluzione: mettere il pre-processing dentro una Pipeline e fare CV lì.
- Temporale: addestrare su dati futuri per prevedere il passato — in serie temporali usa split rolling.
Esempio
Lezione- Setup: 10.000 campioni, classificazione binaria, split 70/15/15.
- Conteggi: train = 7.000, val = 1.500, test = 1.500.
- Stratificato: rapporto classi 80/20 → ogni split mantiene quel rapporto.






