La convalida incrociata K-fold è una tecnica utilizzata per valutare le prestazioni di un modello. È particolarmente utile per stimare la capacità di un modello di generalizzarsi a nuovi dati non visti. Il processo prevede la suddivisione del set di dati in "k" sottoinsiemi o pieghe di dimensioni approssimativamente uguali. Ecco una descrizione dei passaggi:
1. Suddivisione del set di dati:
Il set di dati viene suddiviso in 'k' sottoinsiemi di dimensioni uguali o pieghe. Ad esempio, se si dispone di 1.000 campioni e si sceglie 'k' come 5, ogni piega conterrà 200 campioni.
2. Formazione e valutazione iterativa:
Il modello viene addestrato "k" volte. In ogni iterazione, una piega diversa viene utilizzata come set di validazione, mentre le pieghe rimanenti vengono utilizzate per l'addestramento. Ad esempio:
-
Iterazione 1: Fold 1 come validazione, Fold da 2 a k per l'addestramento.
-
Iterazione 2: Fold 2 come validazione, Fold 1 e 3 a k per l'addestramento.
-
Iterazione 3: Fold 3 come validazione, Fold 1 e 2 e 4 a k per l'addestramento.
-
... e così via fino a quando tutte le pieghe sono state utilizzate come set di validazione.
3. Valutazione delle prestazioni:
Dopo ogni iterazione, le prestazioni del modello vengono valutate utilizzando una metrica scelta (ad esempio accuratezza, precisione, richiamo, ecc.) sull'insieme di validazione. Le metriche delle prestazioni di ogni iterazione vengono mediate o combinate per ottenere una stima complessiva delle prestazioni del modello.
4. Aggregazione di metriche:
Le metriche delle prestazioni (ad esempio i punteggi di accuratezza)di ogni iterazione vengono mediate o combinate per fornire una valutazione complessiva delle prestazioni del modello. Questa metrica aggregata rappresenta la prestazione attesa del modello su dati non visti.
Vantaggi della convalida incrociata K-fold rispetto alla semplice divisione treno/test
-
Migliore utilizzo dei dati: La convalida incrociata K-fold fa un uso migliore dei dati disponibili, poiché ogni campione viene utilizzato sia per l'addestramento che per la convalida.
-
Riduzione della varianza nella stima delle prestazioni: Fornisce una stima più affidabile delle prestazioni del modello riducendo la varianza associata a una singola divisione treno/test.
-
Generalizzazione: Aiuta a capire come il modello si comporta su diversi sottoinsiemi di dati, valutando quindi la sua capacità di generalizzazione.
Scelta del valore di 'k'
-
Valori 'k' più alti: L'utilizzo di un valore 'k' più alto (ad esempio 10 o più) comporta insiemi di validazione più piccoli, che possono portare a una minore distorsione nella stima delle prestazioni, ma a un costo computazionale più elevato.
-
Valori 'k' più bassi: L'uso di un valore 'k' più basso (ad esempio 3 o 5) riduce il costo computazionale, ma può portare a una maggiore distorsione nella stima delle prestazioni a causa di insiemi di validazione più piccoli.
In scenari pratici
-
Per gli insiemi di dati di grandi dimensioni, valori di 'k' più elevati possono essere computazionalmente costosi.
-
Quando il set di dati è piccolo, un 'k' più alto potrebbe non fornire dati sufficienti in ogni piega per una solida formazione del modello.
-
In genere si utilizzano valori come 5 o 10, che rappresentano un equilibrio tra efficienza computazionale e stima affidabile delle prestazioni.