Una semplice guida alla convalida incrociata di k-fold
Per valutare le prestazioni di un modello su un set di dati, dobbiamo misurare quanto bene le previsioni fatte dal modello corrispondono ai dati osservati.
Il modo più comune per misurarlo è utilizzare l’errore quadratico medio (MSE), che viene calcolato come segue:
MSE = (1/n)*Σ(y i – f(x i )) 2
Oro:
- n: numero totale di osservazioni
- y i : il valore di risposta dell’i -esima osservazione
- f( xi ): Il valore di risposta previsto dell’i- esima osservazione
Più le previsioni del modello si avvicinano alle osservazioni, più basso sarà il MSE.
In pratica, utilizziamo il seguente processo per calcolare l’MSE di un dato modello:
1. Dividere un set di dati in un set di training e un set di test.
2. Crea il modello utilizzando solo i dati del set di training.
3. Utilizzare il modello per fare previsioni sul set di test e misurare l’MSE del test.
I test MSE ci danno un’idea delle prestazioni di un modello su dati mai visti prima. Tuttavia, lo svantaggio di utilizzare un singolo set di test è che il test MSE può variare in modo significativo a seconda delle osservazioni utilizzate nei set di training e di test.
Un modo per evitare questo problema è adattare un modello più volte utilizzando ogni volta un set di training e test diverso, quindi calcolare l’MSE di test come media di tutti gli MSE di test.
Questo metodo generale è noto come convalida incrociata e una sua forma specifica è nota come convalida incrociata k-fold .
Convalida incrociata K-Fold
La convalida incrociata K-fold utilizza il seguente approccio per valutare un modello:
Passaggio 1: dividere casualmente un set di dati in k gruppi, o “pieghe”, di dimensioni approssimativamente uguali.
Passaggio 2: scegli una delle pieghe come set di attesa. Adatta il modello alle restanti pieghe k-1. Calcolare il test MSE sulle osservazioni nello strato che è stato tensionato.
Passaggio 3: ripetere questo processo k volte, ogni volta utilizzando un set diverso come set di esclusione.
Passaggio 4: calcolare l’MSE complessivo del test come media dei k MSE del test.
Prova MSE = (1/k)*ΣMSE i
Oro:
- k: numero di pieghe
- MSE i : testa MSE all’i -esima iterazione
Come scegliere K
In generale, più pieghe utilizziamo nella convalida incrociata k-fold, minore è la distorsione del test MSE ma maggiore è la varianza. Al contrario, meno pieghe utilizziamo, maggiore è il bias ma minore è la varianza. Questo è un classico esempio del compromesso bias-varianza nell’apprendimento automatico.
In pratica, generalmente scegliamo di utilizzare tra 5 e 10 veli. Come notato in An Introduction to Statistical Learning , è stato dimostrato che questo numero di pieghe fornisce un equilibrio ottimale tra bias e varianza e quindi fornisce stime affidabili dell’MSE del test:
Per riassumere, esiste un compromesso bias-varianza associato alla scelta di k nella convalida incrociata k-fold.
Tipicamente, date queste considerazioni, si esegue una validazione incrociata k-fold utilizzando k = 5 o k = 10, poiché è stato dimostrato empiricamente che questi valori producono stime del tasso di errore del test che non subiscono né bias eccessivamente elevati né varianza molto elevata.
-Pagina 184, Un’introduzione all’apprendimento statistico
Vantaggi della convalida incrociata K-Fold
Quando dividiamo un set di dati in un singolo set di training e in un singolo set di test, il test MSE calcolato sulle osservazioni nel set di test può variare in modo significativo a seconda delle osservazioni utilizzate nei set di training e di test.
Utilizzando la convalida incrociata k-fold, siamo in grado di calcolare il test MSE utilizzando diverse varianti di set di training e test. Questo ci dà una possibilità molto maggiore di ottenere una stima imparziale del MSE del test.
La convalida incrociata K-fold fornisce anche un vantaggio computazionale rispetto alla convalida incrociata Leave-One-Out (LOOCV) perché deve adattarsi a un modello solo k volte anziché n volte.
Per i modelli che richiedono molto tempo per adattarsi, la convalida incrociata k-fold può calcolare il test MSE molto più velocemente di LOOCV e in molti casi il test MSE calcolato da ciascun approccio sarà abbastanza simile se si utilizza un numero sufficiente di pieghe.
Estensioni di convalida incrociata K-Fold
Esistono diverse estensioni alla convalida incrociata k-fold, tra cui:
Convalida incrociata k-fold ripetuta: è qui che la convalida incrociata k-fold viene semplicemente ripetuta n volte. Ogni volta che i set di training e test vengono mischiati, ciò riduce ulteriormente la distorsione nella stima MSE del test, sebbene ciò richieda più tempo per essere completato rispetto alla normale convalida incrociata k-fold.
Convalida incrociata Leave-One-Out: questo è un caso speciale di convalida incrociata k-fold in cui k = n . Puoi saperne di più su questo metodo qui .
Convalida incrociata k-fold stratificata: questa è una versione della convalida incrociata k-fold in cui il set di dati viene riorganizzato in modo tale che ciascuna piega sia rappresentativa dell’intero. Come notato da Kohavi , questo metodo tende a offrire un migliore compromesso tra bias e varianza rispetto alla normale convalida incrociata k-fold.
Convalida incrociata nidificata: è qui che viene eseguita la convalida incrociata k-fold in ogni piega di convalida incrociata. Viene spesso utilizzato per eseguire l’ottimizzazione degli iperparametri durante la valutazione del modello.