Overfitting

Overfitting significa creare un modello che corrisponde a (memorizza) training set il modello non riesce a fare previsioni corrette sui nuovi dati. Un modello overfitting è analogo a un'invenzione che funziona bene in laboratorio, ma è inutile nel mondo reale.

Nella Figura 11, immagina che ogni forma geometrica rappresenti la posizione di un albero in una foresta quadrata. I diamanti blu indicano la posizione degli alberi sani, mentre i cerchi arancioni indicano la posizione degli alberi malati.

Figura 11. Questo dato contiene circa 60 punti, metà dei quali sono
            alberi sani e l'altro mezzo malato.
            Gli alberi sani si trovano principalmente nel quadrante nord-est, anche se
            alberi sani si infilano nei quadranti nord-ovest. Gli alberi malati
            si trovano principalmente nel quadrante sud-est, ma alcuni alberi ammalati
            finire in altri quadranti.
. Figura 11. Set di addestramento: posizioni di alberi sani e malati in una foresta quadrata.

 

Disegna mentalmente qualsiasi forma (linee, curve, ovali e qualsiasi cosa) per separare alberi sani dagli alberi malati. Quindi, espandi la riga successiva per esaminare una possibile separazione.

Le forme complesse mostrate nella Figura 12 hanno classificato correttamente tutti tranne due tra gli alberi. Se pensiamo alle forme come a un modello, allora questo è un un modello di machine learning.

O no? Un modello davvero eccellente classifica correttamente nuovi esempi. La figura 13 mostra cosa succede quando lo stesso modello fa previsioni sulla base di nuovi esempi dal set di test:

Figura 13. Una nuova serie di alberi sani e malati sovrapposti
            modello mostrato in Figura 12. Il modello classifica erroneamente molti dei
            alberi.
. Figura 13.Set di test: un modello complesso per distinguere gli alberi malati da quelli sani.

 

Quindi, il modello complesso mostrato nella Figura 12 ha fatto un ottimo lavoro sul set di addestramento ma un pessimo lavoro sul set di test. Questo è un caso classico di modello l'overfitting con i dati del set di addestramento.

Fitting, overfitting e underfitting

Un modello deve fare buone previsioni sulla base di nuovi dati. In altre parole, il tuo obiettivo è creare un modello "adatto" nuovi dati.

Come abbiamo visto, un modello in overfitting fa previsioni eccellenti sull'addestramento dati, ma previsioni scadenti. Un underfit non fa nemmeno buone previsioni sui dati di addestramento. Se un modello in overfitting viene un prodotto che funziona bene in laboratorio ma insoddisfacente nel mondo reale, un modello underfit è come un prodotto che non ha prestazioni soddisfacenti nel lab.

Figura 14. grafico cartesiano. L'asse X è etichettato come "qualità delle previsioni
            sul set di addestramento". L'asse Y è denominato "Qualità delle previsioni su
            dati reali". Una curva parte dall'origine e sale gradualmente,
            ma poi cade altrettanto rapidamente. La parte inferiore sinistra della curva
            (scarsa qualità delle previsioni su dati reali e bassa qualità delle
            sul set di addestramento) è etichettato come "modelli underfit". La
            parte inferiore destra della curva (bassa qualità delle previsioni
            dati reali ma previsioni di alta qualità sul set di addestramento)
            è etichettata come "modelli overfitting". Il picco della curva (alta qualità
            di previsioni su dati reali e di previsioni di media qualità
            sul set di addestramento) è etichettato come "fit model".
. Figura 14. Modelli underfit, fit e overfitting.

 

La generalizzazione è l'opposto dell'overfitting. In altre parole, un modello che generalizza bene fa bene fare previsioni sulla base di nuovi dati. Il tuo obiettivo è creare un modello che generalizzi bene ai nuovi dati.

Rilevamento dell'overfitting

Le seguenti curve consentono di rilevare l'overfitting:

  • curve di perdita
  • curve di generalizzazione

Una curva di perdita traccia la perdita di un modello rispetto al numero di iterazioni di addestramento. Un grafico che mostra due o più curve di perdita è chiamato generalizzazione personalizzata. Le seguenti la curva di generalizzazione mostra due curve di perdita:

Figura 15. La funzione di perdita per l'insieme di addestramento
            rifiuta. Anche la funzione di perdita per il set di convalida rifiuta,
            ma poi inizia ad aumentare dopo un certo numero di iterazioni.
. Figura 15. Una curva di generalizzazione che implica fortemente l'overfitting.

 

Nota che le due curve di perdita si comportano inizialmente in modo simile e poi divergono. Cioè, dopo un certo numero di iterazioni, la perdita diminuisce rimane stabile (converge) per l'addestramento, ma aumenta per il set di convalida. Questo suggerisce un overfitting.

Al contrario, una curva di generalizzazione per un modello di adattamento mostra due curve di perdita che hanno forme simili.

Quali sono le cause dell'overfitting?

In termini molto generali, l'overfitting è causato da una o entrambe le seguenti cause: problemi:

  • Il set di addestramento non rappresenta in modo adeguato i dati reali (o set di convalida o set di test).
  • Il modello è troppo complesso.

Condizioni di generalizzazione

Un modello viene addestrato, ma il vero test del valore di un modello fa previsioni su nuovi esempi, in particolare su dati reali. Durante lo sviluppo di un modello, il set di test funge da proxy per i dati reali. L'addestramento di un modello che generalizza bene implica le seguenti condizioni per i set di dati:

  • Gli esempi devono essere distribuite in modo indipendente e in modo identico, che è un modo elegante per dire che gli esempi non possono influenzare l'altro.
  • Il set di dati è stazionario, nel senso che non cambia in modo significativo nel tempo.
  • Le partizioni del set di dati hanno la stessa distribuzione. In altre parole, gli esempi nel set di addestramento sono statisticamente simili esempi nel set di convalida, nel set di test e nei dati reali.

Esplora le condizioni precedenti attraverso gli esercizi seguenti.

Esercizi: verifica le tue conoscenze

Considera le seguenti partizioni del set di dati.
Una barra orizzontale divisa in tre parti: il 70% della barra
                     è il set di addestramento, il 15% il set di convalida e il 15%
                     il set di test
Cosa dovresti fare per assicurarti che gli esempi nel set di addestramento hanno una distribuzione statistica simile agli esempi in il set di convalida e il set di test?
Esegui lo shuffling degli esempi nel set di dati in modo esteso prima di eseguendone il partizionamento.
Sì. Un buon shuffling degli esempi rende le partizioni molto più probabilità di essere statisticamente simili.
Ordina gli esempi dal più recente al più recente.
Se gli esempi nel set di dati non sono stazionari, l'ordinamento rende le partizioni meno simili.
Non fare niente. Data un numero sufficiente di esempi, la legge delle medie assicura naturalmente che le distribuzioni siano statisticamente simili.
Purtroppo, non è così. Gli esempi in alcune sezioni del set di dati possono differire da quelle in altre sezioni.
Un servizio di streaming sta sviluppando un modello per prevedere la popolarità di potenziali nuovi programmi televisivi per i prossimi tre anni. La un servizio di streaming per addestrare il modello su un set di dati contenente centinaia di milioni di esempi, che coprono i dieci anni. Questo modello avrà un problema?
È probabile. Spettatori i gusti cambiano in modi che i comportamenti passati non prevedere.
Sì. I gusti degli spettatori non sono stazionari. Cambiano continuamente.
Assolutamente no. Il set di dati è abbastanza grande da fare buoni risultati per le previsioni.
Purtroppo, i gusti non sono stazionari.
Probabilmente no. Spettatori i gusti cambiano in modo prevedibile e ciclico. Dieci anni di dati consentiranno al modello di fare buone previsioni sulle tendenze future.
Sebbene alcuni aspetti dell'intrattenimento siano piuttosto ciclici, una addestrato dalla storia dell'intrattenimento passato quasi certamente avere difficoltà a fare previsioni sui prossimi anni.
Un modello mira a prevedere quanto tempo impiegano le persone a camminare per un chilometro in base ai dati meteorologici (temperatura, punto di rugiada precipitazioni) raccolte nell'arco di un anno in una città con condizioni meteorologiche variabili a seconda della stagione. Puoi creare e testare un modello da questo di dati, anche se le letture meteorologiche cambiano drasticamente stagione?
Sì, è possibile creare e testare un modello da questo set di dati. Devi solo assicurarti che i dati siano partizionati in modo uniforme, i dati di tutte le quattro stagioni sono distribuiti equamente diverse partizioni.
No
Supponendo che questo set di dati contenga esempi sufficienti di temperatura, rugiada punto e precipitazione, puoi creare e testare un modello questo set di dati. Devi solo assicurarti che i dati siano partizionati in modo che i dati di tutte e quattro le stagioni siano distribuiti equamente nelle diverse partizioni.

Allenamento di sfida

Stai creando un modello che prevede la data ideale in cui i passeggeri acquistano una biglietto ferroviario per un determinato percorso. Ad esempio, il modello potrebbe consigliare che gli utenti acquistano il biglietto l'8 luglio per un treno che parte il 23 luglio. La compagnia ferroviaria aggiorna i prezzi ogni ora, sulla base di vari diversi fattori, ma principalmente sull'attuale numero di utenze disponibili. Ossia:

  • Se ci sono molti posti disponibili, i prezzi dei biglietti in genere sono bassi.
  • Se i posti disponibili sono pochi, i prezzi dei biglietti sono in genere alti.
Il modello presenta una bassa del set di convalida e del set di test, ma a volte terribili previsioni su dati reali. Perché?
Fai clic qui per vedere la risposta