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.
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:
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.
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:
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
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.
Risposta: il modello reale è alle prese con una loop di feedback.
Ad esempio, supponiamo che il modello consigli agli utenti di acquistare i biglietti l'8 luglio. Alcuni ciclisti che seguono il consiglio del modello acquistano i biglietti alle 8:30 di mattina l'8 luglio. Alle 9:00, la compagnia ferroviaria aumenta i prezzi perché ora sono disponibili meno posti. I corridori che seguono il consiglio del modello hanno prezzi alterati. Di sera, i prezzi dei biglietti potrebbero essere molto più alti che nella mattina.