Una rapida introduzione alla convalida incrociata leave-one-out (loocv)


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.

Formazione e test sull'apprendimento automatico

2. Crea il modello utilizzando solo i dati del set di training.

LOOCV nell'apprendimento automatico

3. Utilizzare il modello per fare previsioni sul set di test e misurare l’MSE: questo è chiamato test MSE . Set di formazione o test

I test MSE ci danno un’idea delle prestazioni di un modello su dati che non ha mai visto prima, ovvero dati che non sono stati utilizzati per “addestrare” il modello.

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.

È possibile che se utilizziamo un diverso insieme di osservazioni per il training set e il test set, il nostro test MSE potrebbe rivelarsi molto più grande o più piccolo.

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 Leave-One-Out .

Convalida incrociata Leave-One-Out

La convalida incrociata Leave-one-out utilizza il seguente approccio per valutare un modello:

1. Suddividere un set di dati in un set di training e in un set di test, utilizzando tutte le osservazioni tranne una come parte del set di training:

LOOCV

Si noti che lasciamo solo un’osservazione “fuori” dal training set. È qui che il metodo prende il nome di convalida incrociata “leave-one-out”.

2. Crea il modello utilizzando solo i dati del set di training.

Costruire un modello con l'approccio LOOCV

3. Utilizzare il modello per prevedere il valore di risposta della singola osservazione esclusa dal modello e calcolare l’MSE.

Convalida incrociata diretta

4. Ripetere il processo n volte.

Infine, ripetiamo questo processo n volte (dove n è il numero totale di osservazioni nel set di dati), tralasciando ogni volta un’osservazione diversa dal set di addestramento.

Calcoliamo quindi l’MSE del test come media di tutti gli MSE del test:

Prova MSE = (1/n)*ΣMSE i

Oro:

  • n: il numero totale di osservazioni nel set di dati
  • MSEi: il test MSE durante l’ i-esimo periodo di adattamento del modello.

Vantaggi e svantaggi di LOOCV

La convalida incrociata “leave-one-out” offre i seguenti vantaggi :

  • Fornisce una misura molto meno distorta del test MSE rispetto all’utilizzo di un singolo set di test, perché adattiamo ripetutamente un modello a un set di dati contenente n-1 osservazioni.
  • Si tende a non sovrastimare l’MSE del test rispetto all’utilizzo di un singolo set di test.

Tuttavia, la convalida incrociata diretta presenta i seguenti svantaggi:

  • L’utilizzo di questo processo può richiedere molto tempo quando n è grande.
  • Può anche richiedere molto tempo se un modello è particolarmente complesso e impiega molto tempo per adattarsi a un set di dati.
  • Questo può essere computazionalmente costoso.

Fortunatamente, l’informatica moderna è diventata così efficiente nella maggior parte dei settori che LOOCV è un metodo molto più ragionevole da utilizzare rispetto a molti anni fa.

Si noti che LOOCV può essere utilizzato anche in contesti di regressione e classificazione . Per i problemi di regressione, calcola il test MSE come differenza quadratica media tra previsioni e osservazioni, mentre nei problemi di classificazione calcola il test MSE come percentuale di osservazioni classificate correttamente su n aggiustamenti ripetuti del modello.

Come eseguire LOOCV in R e Python

I seguenti tutorial forniscono esempi passo passo su come eseguire LOOCV per un determinato modello in R e Python:

Convalida incrociata Leave-One-Out in R
Convalida incrociata Leave-One-Out in Python

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *