Che cos'è la convalida incrociata? Confronto di modelli di apprendimento automatico

Pubblicato: 2021-07-21

La convalida incrociata è uno strumento prezioso per i data scientist.

È utile per costruire in modo più accurato   apprendimento automatico   modelli e valutando quanto bene funzionano su un set di dati di test indipendente.

La convalida incrociata è facile da comprendere e implementare, il che la rende un metodo di riferimento per confrontare le capacità (o abilità) predittive di diversi modelli e scegliere il migliore. È utile quando la quantità di dati disponibili è limitata ed è un ottimo modo per verificare come funziona in pratica un modello predittivo.

La convalida incrociata viene utilizzata per proteggere un modello dall'overfitting , soprattutto se la quantità di dati disponibili è limitata. È anche noto come stima della rotazione o test fuori campione e viene utilizzato principalmente nelle impostazioni in cui l'obiettivo del modello è la previsione.

Lo sapevate? Un modello è considerato "sovraadattato" se modella i dati di addestramento così bene da influire negativamente sulle sue prestazioni sui nuovi dati.

Questa procedura di ricampionamento viene utilizzata anche per confrontare diversi modelli di apprendimento automatico e determinare in che modo funzionano per risolvere un particolare problema. In altre parole, la convalida incrociata è un metodo utilizzato per valutare l'abilità dei modelli di apprendimento automatico.

In poche parole, nel processo di convalida incrociata, il campione di dati originale viene diviso casualmente in diversi sottoinsiemi. Il modello di apprendimento automatico esegue il training su tutti i sottoinsiemi, tranne uno. Dopo l'addestramento, il modello viene testato facendo previsioni sul sottoinsieme rimanente.

In molti casi, vengono eseguiti più cicli di convalida incrociata utilizzando diversi sottoinsiemi e viene calcolata la media dei risultati per determinare quale modello è un buon predittore.

Perché la convalida incrociata è importante?

La convalida incrociata è fondamentale quando la quantità di dati disponibili è limitata.

Supponiamo di dover prevedere la probabilità che uno pneumatico di bicicletta venga forato. Per questo, hai raccolto dati sugli pneumatici esistenti: l'età del pneumatico, il numero di chilometri percorsi, il peso del pilota e se è stato forato in precedenza.

Per creare un modello predittivo, utilizzerai questi dati (storici). Ci sono due cose che devi fare con questi dati: addestrare l'algoritmo e testare il modello.

Lo sapevate? Nell'apprendimento automatico, un algoritmo e un modello non sono la stessa cosa. Un modello è ciò che viene appreso dall'algoritmo di apprendimento automatico.

Dal momento che hai solo una quantità limitata di dati disponibili, sarebbe ingenuo utilizzare tutti i dati per addestrare l'algoritmo. Se lo fai, non avresti più dati per testare o valutare il modello.

Riutilizzare il set di addestramento come set di test non è una buona idea poiché è necessario valutare l'accuratezza del modello sui dati su cui non è stato eseguito il training. È perché l'obiettivo principale dietro la formazione è preparare il modello per lavorare su dati del mondo reale. Ed è improbabile che il tuo set di dati di addestramento contenga tutti i possibili punti dati che il modello incontrerà mai.

Un'idea migliore sarebbe quella di utilizzare il primo 75 percento (tre blocchi) dei dati come set di dati di addestramento e l'ultimo 25 percento (un blocco) come set di dati di test . Ciò ti consentirà di confrontare in che modo diversi algoritmi hanno classificato i dati del test.

Ma ovviamente, come faresti a sapere che utilizzare il primo 75% dei dati come set di addestramento e il restante 25% come set di test è il modo migliore?

Invece, puoi utilizzare il primo 25 percento dei dati per il test; oppure è possibile utilizzare il terzo blocco di dati come set di dati di test e il restante come set di dati di addestramento.

Suggerimento: utilizza il software di apprendimento automatico per automatizzare le attività e fare previsioni accurate.

Di conseguenza, un tipo di convalida incrociata chiamata convalida incrociata k-fold utilizza tutte (quattro) parti del set di dati come dati di test, una alla volta, quindi riassume i risultati.

Ad esempio, la convalida incrociata utilizzerà i primi tre blocchi di dati per addestrare l'algoritmo e utilizzerà l'ultimo blocco per testare il modello. Quindi registra quanto bene il modello si è comportato con i dati del test.

Dopo aver registrato le prestazioni o la precisione, utilizzerà il 1°, 2° e 4° blocco di dati per l'allenamento e il 3° blocco per il test. Il processo continua finché tutti i blocchi non vengono utilizzati una volta come dati di test. La media di tutti i risultati viene calcolata per valutare le prestazioni del modello.

Nell'esempio sopra, i dati sono stati divisi in quattro blocchi. Quindi, questa convalida incrociata è chiamata convalida incrociata 4 volte . Se fosse diviso in dieci blocchi, sarebbe 10 volte la convalida incrociata .

In breve, la convalida incrociata è utile per la selezione del modello e semplifica l'esame della capacità di generalizzazione di un modello ai nuovi dati.

In altre parole, è utile determinare l'errore di previsione di un modello. Viene anche usato per confrontare le prestazioni o l'accuratezza di diversi metodi di apprendimento automatico come Support Vector Machine (SVM), K-nearest neighbor (KNN), regressione lineare o regressione logistica.

Ecco alcuni altri motivi per cui i data scientist amano la convalida incrociata:

  • Consente loro di utilizzare tutti i dati senza sacrificare alcun sottoinsieme (non valido per il metodo di controllo)
  • Rivela la coerenza dei dati e dell'algoritmo
  • Aiuta a evitare overfitting e underfitting

La convalida incrociata viene utilizzata anche per ottimizzare il file   iperparametri   di un modello di machine learning attraverso una tecnica chiamata cross-validation randomized grid search .

Tipi di convalida incrociata

I metodi di convalida incrociata possono essere classificati in due categorie: metodi esaurienti e non esaustivi .

Come suggerisce il nome, metodi esaurienti di convalida incrociata si sforzano di testare tutti i modi possibili per dividere il campione di dati originale in un set di training e di test. D'altra parte, i metodi non esaustivi non calcolano tutti i modi per partizionare i dati originali in set di addestramento e valutazione.

Di seguito sono riportati i cinque tipi comuni di convalida incrociata.

1. Metodo di resistenza

Il metodo di controllo è uno degli approcci di convalida incrociata di base in cui il set di dati originale è diviso in due parti: dati di addestramento e dati di test. È un metodo non esaustivo e, come previsto, il modello viene addestrato sul set di dati di addestramento e valutato sul set di dati di test.

Nella maggior parte dei casi, la dimensione del set di dati di addestramento è il doppio del set di dati di test, il che significa che il set di dati originale viene suddiviso nel rapporto di 80:20 o 70:30. Inoltre, i dati vengono mescolati casualmente prima di dividerli in set di addestramento e convalida.

Tuttavia, ci sono alcuni aspetti negativi di questo metodo di convalida incrociata. Poiché il modello viene addestrato su una diversa combinazione di punti dati, può mostrare risultati diversi ogni volta che viene addestrato. Inoltre, non possiamo mai essere del tutto sicuri che il set di dati di addestramento scelto rappresenti l'intero set di dati.

Se il campione di dati originale non è troppo grande, c'è anche la possibilità che i dati del test contengano alcune informazioni cruciali, che il modello non riconoscerà perché non sono incluse nei dati di addestramento.

Tuttavia, la tecnica di convalida incrociata Holdout è l'ideale se hai fretta di addestrare e testare un modello e hai un set di dati di grandi dimensioni.

2. Convalida incrociata K-fold

Il metodo di convalida incrociata k-fold è una versione migliorata del metodo di controllo. Porta maggiore coerenza al punteggio del modello in quanto non dipende da come scegliamo il set di dati di addestramento e test.

È un metodo di convalida incrociata non esaustivo e, come suggerisce il nome, il set di dati è diviso in k numero di suddivisioni e il metodo di controllo viene eseguito k volte.

Ad esempio, se il valore di k è uguale a due, ci saranno due sottoinsiemi di dimensioni uguali. Nella prima iterazione, il modello viene addestrato su un sottocampione e convalidato sull'altro. Nella seconda iterazione, il modello viene addestrato sul sottoinsieme utilizzato per la convalida nell'iterazione precedente e testato sull'altro sottoinsieme. Questo approccio è chiamato convalida incrociata 2 volte .

Allo stesso modo, se il valore di k è uguale a cinque, l'approccio è chiamato metodo di convalida incrociata 5 volte e coinvolgerà cinque sottoinsiemi e cinque iterazioni. Inoltre, il valore di k è arbitrario. In genere, il valore di k è impostato su 10. Se sei confuso sulla scelta di un valore, lo stesso è consigliato.

La procedura di convalida incrociata k-fold inizia con la suddivisione casuale del set di dati originale in k numero di pieghe o sottoinsiemi. In ogni iterazione, il modello viene addestrato sui sottoinsiemi k-1 dell'intero set di dati. Successivamente, il modello viene testato sul k-esimo sottoinsieme per verificarne le prestazioni.

Questo processo viene ripetuto finché tutti i k-fold non sono serviti come set di valutazione. Viene calcolata la media dei risultati di ogni iterazione e si chiama accuratezza della convalida incrociata . L'accuratezza della convalida incrociata viene utilizzata come metrica delle prestazioni per confrontare l'efficienza di diversi modelli.

La tecnica di convalida incrociata k-fold generalmente produce modelli meno distorti poiché ogni punto dati del set di dati originale apparirà sia nel set di addestramento che in quello di test. Questo metodo è ottimale se si dispone di una quantità limitata di dati.

Tuttavia, come previsto, questo processo potrebbe richiedere molto tempo perché l'algoritmo deve rieseguire k volte da zero. Ciò significa anche che richiede k-1 volte più calcolo rispetto al metodo di controllo.

3. Convalida incrociata k-fold stratificata

Dal momento che stiamo mescolando casualmente i dati e li dividiamo in pieghe nella convalida incrociata k-fold, è possibile che finiamo con sottoinsiemi sbilanciati. Ciò può causare una formazione di parte, che si traduce in un modello impreciso.

Si consideri ad esempio il caso di un problema di classificazione binaria in cui ciascuno dei due tipi di etichette di classe comprende il 50 percento dei dati originali. Ciò significa che le due classi sono presenti nel campione originale in proporzioni uguali. Per semplicità, chiamiamo le due classi A e B.

Mentre si rimescolano i dati e li si divide in fold, c'è un'alta probabilità che si finisca con un fold in cui la maggior parte dei punti dati proviene dalla classe A e solo pochi dalla classe B. Tale sottoinsieme è visto come un sottoinsieme sbilanciato e può portare a creare un classificatore impreciso.

Per evitare tali situazioni, le pieghe vengono stratificate utilizzando un processo chiamato stratificazione . Nella stratificazione, i dati vengono riorganizzati per garantire che ogni sottoinsieme sia una buona rappresentazione dell'intero insieme di dati.

Nell'esempio precedente di classificazione binaria, ciò significherebbe che è meglio dividere il campione originale in modo che metà dei punti dati in una piega provenga dalla classe A e il resto dalla classe B.

4. Convalida incrociata leave-p-out

La validazione incrociata leave-p-out (LpOCV) è un metodo esauriente in cui p numero di punti dati viene estratto dal numero totale di campioni di dati rappresentato da n.

Il modello viene addestrato su punti dati np e successivamente testato su punti dati p. Lo stesso processo viene ripetuto per tutte le possibili combinazioni di p dal campione originale. Infine, viene calcolata la media dei risultati di ciascuna iterazione per ottenere l'accuratezza della convalida incrociata.

5. Convalida incrociata leave-one-out

L'approccio di convalida incrociata (LOOCV) leave-one-out è una versione semplificata di LpOCV. In questa tecnica di convalida incrociata, il valore di p è impostato su uno. Quindi, questo metodo è molto meno esaustivo. Tuttavia, l'esecuzione di questo metodo è costosa e dispendiosa in termini di tempo poiché il modello deve essere montato n numero di volte.

Esistono altre tecniche di convalida incrociata, tra cui la convalida ripetuta del sottocampionamento casuale, la convalida incrociata nidificata e la convalida incrociata di serie temporali.

Applicazioni di convalida incrociata

L'applicazione principale della convalida incrociata è valutare le prestazioni dei modelli di apprendimento automatico. Questo aiuta a confrontare i metodi di apprendimento automatico e determinare quale è l'ideale per risolvere un problema specifico.

Ad esempio, supponiamo di considerare k-nearest neighbors (KNN) o l'analisi dei componenti principali (PCA) per eseguire il riconoscimento ottico dei caratteri. In questo caso, puoi utilizzare la convalida incrociata per confrontare i due in base al numero di caratteri classificati erroneamente da ciascun metodo.

La convalida incrociata può essere utilizzata anche nella selezione delle funzionalità per selezionare le funzionalità che contribuiscono maggiormente all'output della previsione.

Limitazioni della convalida incrociata

La sfida principale della convalida incrociata è la necessità di risorse computazionali eccessive, specialmente in metodi come k-fold CV. Poiché l'algoritmo deve essere rieseguito da zero per k volte, richiede k volte più calcoli per essere valutato.

Un'altra limitazione è quella che circonda i dati invisibili. Nella convalida incrociata, il set di dati di test è il set di dati invisibile utilizzato per valutare le prestazioni del modello. In teoria, questo è un ottimo modo per verificare come funziona il modello quando viene utilizzato per applicazioni del mondo reale.

Tuttavia, nella pratica non può mai esistere un insieme completo di dati invisibili e non si può mai prevedere il tipo di dati che il modello potrebbe incontrare in futuro.

Supponiamo che sia costruito un modello per prevedere il rischio di un individuo di contrarre una specifica malattia infettiva. Se il modello viene addestrato sui dati di uno studio di ricerca che coinvolge solo un particolare gruppo di popolazione (ad esempio, donne intorno ai 20 anni), quando viene applicato alla popolazione generale, le prestazioni predittive potrebbero differire notevolmente rispetto all'accuratezza della convalida incrociata .

Inoltre, la convalida incrociata produrrà risultati significativi solo se i pregiudizi umani sono controllati nel set di campioni originale.

Convalida incrociata in soccorso

La creazione di modelli con convalida incrociata è un metodo eccellente per creare applicazioni di apprendimento automatico con maggiore precisione o prestazioni. Le tecniche di convalida incrociata come la convalida incrociata k-fold consentono di stimare le prestazioni di un modello senza sacrificare la suddivisione del test.

Eliminano anche i problemi causati da una divisione dei dati di squilibrio; in breve, possono consentire ai data scientist di fare affidamento meno sulla fortuna e più sulle iterazioni.

C'è un sottoinsieme dell'apprendimento automatico che cerca di imitare il funzionamento del cervello umano. Si chiama deep learning e l'intelligenza artificiale generale, se mai possibile, richiederebbe le sue capacità decisionali.