Overfitting / Underfitting with Data set size


11

Nel grafico seguente,

  • x-axis => Dimensione set di dati
  • asse y => Punteggio di convalida incrociata

inserisci qui la descrizione dell'immagine

  • La linea rossa è per i dati di allenamento

  • La linea verde è per i dati di test

In un tutorial a cui mi riferisco, l'autore afferma che il punto in cui la linea rossa e la linea verde si sovrappongono significa,

È improbabile che la raccolta di più dati aumenti le prestazioni di generalizzazione e ci troviamo in una regione in cui è probabile che non siano adatti ai dati. Pertanto ha senso provare con un modello con più capacità

Non riesco a capire bene il significato della frase in grassetto e come accada.

Apprezzo qualsiasi aiuto.


Cosa sono le linee rosse e verdi?
Kasra Manshaei,

1
@KasraManshaei: ho aggiornato la domanda.
tharindu_DG,

1
Se possibile, aggiungi il link al tutorial. Ci aiuterebbe a capire meglio la risposta e il contesto :)
Dawny33

@ Dawny33: è un tutorial video e caricarlo violerebbe i problemi di copyright immagino. :)
tharindu_DG

Risposte:


6

Quindi, il underfitting significa che hai ancora la capacità di migliorare il tuo apprendimento, mentre il sovrautilizzo significa che hai usato una capacità più del necessario per l'apprendimento.

L'area verde è il punto in cui l'errore di test sta aumentando, ovvero è necessario continuare a fornire capacità (punti dati o complessità del modello) per ottenere risultati migliori. Più linea verde va, più piatta diventa cioè si sta raggiungendo il punto in cui la capacità fornita (che è dati) è sufficiente e migliore per provare a fornire l'altro tipo di capacità che è la complessità del modello.

Se non migliora il punteggio del test o addirittura lo riduce, ciò significa che la combinazione di complessità dei dati è stata in qualche modo ottimale e puoi interrompere l'allenamento.


Grazie per la risposta. Ho poche ambiguità. - Alla fine del grafico, la linea verde e la linea rossa convergevano. Non significa che abbiamo abbastanza dati per il nostro modello? - È possibile ottenere una precisione migliore dal set di test rispetto al set di allenamento? - Diciamo che abbiamo ottenuto un modello migliore e come dovrebbe essere quel grafico?
tharindu_DG,

1
"Non significa che abbiamo abbastanza dati per il nostro modello?" Questo è esattamente quello che ho scritto. Sì, hai abbastanza dati, quindi se vuoi migliorare dovresti provare più complessità. I dati sono sufficienti. "È possibile ottenere una precisione migliore dal set di test rispetto al set di allenamento?" Non ho mai visto una cosa del genere. Ciò potrebbe accadere in un singolo esperimento, ma non in generale. Questa domanda può essere tradotta in "Posso sapere più di quello che so?" e la risposta è "Certo che no!"
Kasra Manshaei,

1
"Diciamo che abbiamo ottenuto un modello migliore e come dovrebbe essere quel grafico?" Presumo (tu provi a farmi sapere se ho ragione :)) che sia l'allenamento che il test migliorano o meno. È possibile che l'allenamento migliori e che il test cada, ma non viceversa, ed è anche possibile che entrambi migliorino per un po ', quindi il test cade, chiamato Overfitting. Dovresti interrompere l'allenamento nel punto in cui la linea di test sta iniziando a cadere
Kasra Manshaei il

5

Mentre Kasra Manshaei dà una buona risposta generale (+1), vorrei fare un esempio di facile comprensione.

f:[0,1]Rsottovesti .

Quindi facciamo il contrario: supponi di avere 1000 punti dati. Conoscendo un po 'di matematica, scegli un polinomio di grado 999. Ora puoi adattare perfettamente i dati di allenamento. Tuttavia, i tuoi dati potrebbero adattarsi perfettamente ai dati. Ad esempio, vedi (dal mio blog )

inserisci qui la descrizione dell'immagine

In questo caso, hai altri modelli che si adattano perfettamente anche ai dati. Ovviamente, il modello blu sembra in qualche modo innaturale tra i punti dati. Il modello stesso potrebbe non essere in grado di catturare bene il tipo di distribuzione, quindi limitare il modello a qualcosa di più semplice potrebbe effettivamente aiutarlo. Questo può essere un esempio di overfitting .


1
Molto bello @moose! (+1) per la comprensione della spiegazione
Kasra Manshaei,

0

Nel tuo caso hai - un divario molto piccolo (o no) tra il treno e le curve di prova che indica che il modello ha un bias / underfit elevato, soluzione: è necessario scegliere un modello più complesso; - per motivi di completamento, è necessario aggiungere un caso opposto quando lo spazio tra il treno e le curve di prova è molto grande che indica una varianza / eccesso di adattamento elevato, soluzioni: a) continuare ad aumentare la dimensione del set di dati; b) scegliere un modello meno complesso, c) eseguire la regolarizzazione.


0

Puoi eseguire una o tutte le seguenti operazioni:

1) modifica le funzionalità che stai inserendo nel modello

2) scegli un modello diverso con cui lavorare

3) carica più dati nel modello (potrebbe non essere un'opzione per te, ma normalmente questa è un'opzione)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.