Quando viene adattato un modello?


56

La logica spesso afferma che aumentando la sua capacità di generalizzare, si riduce la sua capacità di generalizzare. Detto questo, chiaramente a un certo punto il sottofondo di un modello fa sì che i modelli peggiorino indipendentemente dalla complessità dei dati.

Come fai a sapere quando il tuo modello ha raggiunto il giusto equilibrio e non si adatta ai dati che cerca di modellare?


Nota: questo è un seguito alla mia domanda, " Perché è un overfitting male? "


Immagino che volessi dire "La logica spesso afferma che, per (sovra) sottovalutare un modello, la sua capacità di generalizzare è aumentata " .
Rubens,

Risposte:


43

Un modello si addice quando è troppo semplice per quanto riguarda i dati che sta cercando di modellare.

Un modo per rilevare tale situazione è utilizzare l' approccio di bias-varianza , che può essere rappresentato in questo modo:

inserisci qui la descrizione dell'immagine

Il tuo modello è sottodimensionato quando hai un bias elevato.


Per sapere se hai un pregiudizio troppo elevato o una varianza troppo elevata, vedi il fenomeno in termini di addestramento ed errori di test:

Distorsione elevata: questa curva di apprendimento mostra un errore elevato sia sull'allenamento che sui test, quindi l'algoritmo soffre di un'alta propensione:

inserisci qui la descrizione dell'immagine

Alta varianza: questa curva di apprendimento mostra un ampio divario tra la formazione e gli errori del set di test, quindi l'algoritmo soffre di alta varianza.

inserisci qui la descrizione dell'immagine

Se un algoritmo soffre di varianza elevata:

  • più dati probabilmente aiuteranno
  • altrimenti ridurre la complessità del modello

Se un algoritmo soffre di un bias elevato:

  • aumentare la complessità del modello

Consiglio di seguire il corso di Machine Learning di Coursera , sezione "10: Consigli per l'applicazione del machine learning", da cui ho tratto i grafici sopra.


Intendevi dire "aumenta riduci la complessità del modello" sull'ultimo punto elenco? Penso solo "aumentare la complessità del modello". . . A proposito di buon tempismo Mi sono iscritto a quel corso e avevo appena visto il video a cui ti riferivi.
Neil Slater,

@NeilSlater Grazie, buona cattura, c'era davvero un errore di battitura :)
Franck Dernoncourt

1
Sembra supporre che l'errore di allenamento sia una stima decente della distorsione. Il bias (per il semplice caso della funzione di perdita MSE) è definito come l'errore atteso che si commette sui nuovi dati , quando si calcola la previsione media su tutti i diversi set di allenamento . Cosa rende J_train (non calcolata come media tra i set di allenamento e non utilizzando nuovi dati) una stima decente della distorsione?
massimo

@FranckDernoncourt possiamo associare overfitting e underfitting alla dimensione dell'allenamento rispetto ai dati del test? Possiamo dire che il modello si è allenato su abiti da allenamento più piccoli?
Sudip Bhandari,

10

Per rispondere alla tua domanda, è importante comprendere il quadro di riferimento che stai cercando, se stai cercando ciò che filosoficamente stai cercando di ottenere nell'adattamento del modello, dai un'occhiata a Rubens risponde che fa un buon lavoro nel spiegare quel contesto.

Tuttavia, in pratica la tua domanda è quasi interamente definita da obiettivi aziendali.

Per fare un esempio concreto, supponiamo che tu sia un funzionario addetto al prestito, che hai emesso prestiti per $ 3.000 e quando le persone ti rimborsano guadagni $ 50. Naturalmente stai cercando di costruire un modello che preveda come se una persona vada in default prestito. Manteniamolo semplice e diciamo che i risultati sono il pagamento completo o predefinito.

Dal punto di vista aziendale è possibile riassumere le prestazioni di un modello con una matrice di contingenza:

inserisci qui la descrizione dell'immagine

Quando il modello prevede che qualcuno sta per default, vero? Per determinare gli svantaggi di over e under fitting, trovo utile pensarlo come un problema di ottimizzazione, perché in ogni sezione trasversale delle prestazioni del modello reale versetti previsti c'è un costo o un profitto da realizzare:

inserisci qui la descrizione dell'immagine

In questo esempio, prevedere un default che è un default significa evitare qualsiasi rischio e prevedere un default che non fallisce farà $ 50 per prestito emesso. Il punto in cui le cose diventano rischiose è quando si sbaglia, se si fallisce quando si predice il non default si perde l'intero capitale del prestito e se si prevede il default quando un cliente in realtà non vorrebbe che si subissero $ 50 di opportunità mancate. I numeri qui non sono importanti, solo l'approccio.

Con questo quadro ora possiamo iniziare a comprendere le difficoltà associate al sovra e sotto adattamento.

Un adattamento eccessivo in questo caso significherebbe che il modello funziona molto meglio sui dati di sviluppo / test rispetto alla produzione. O, per dirla in altro modo, il tuo modello in produzione sottoperformerà di gran lunga quello che hai visto nello sviluppo, questa falsa fiducia probabilmente ti farà assumere prestiti molto più rischiosi di quanto altrimenti farebbe e ti lascerebbe molto vulnerabile alla perdita di denaro.

D'altra parte, sotto adattamento in questo contesto ti lascerà con un modello che fa solo un cattivo lavoro di abbinamento della realtà. Mentre i risultati possono essere incredibilmente imprevedibili (la parola opposta che vuoi descrivere i tuoi modelli predittivi), generalmente ciò che accade è che gli standard vengono rafforzati per compensare ciò, portando a meno clienti complessivi che portano a perdere buoni clienti.

Under fitting soffre di una sorta di difficoltà opposta rispetto a un eccesso di fitting, che è insufficiente e ti dà meno fiducia. Insidiosamente, la mancanza di prevedibilità ti porta ancora ad assumere rischi inaspettati, che sono tutte cattive notizie.

Nella mia esperienza, il modo migliore per evitare entrambe queste situazioni è convalidare il tuo modello su dati completamente al di fuori dell'ambito dei tuoi dati di allenamento, in modo da poter avere la certezza di avere un campione rappresentativo di ciò che vedrai "in natura" '.

Inoltre, è sempre buona norma riconvalidare periodicamente i modelli, determinare la velocità con cui il modello si sta degradando e se sta ancora raggiungendo i tuoi obiettivi.

Solo per alcune cose, il tuo modello è inadatto quando fa un cattivo lavoro di previsione sia dei dati di sviluppo che di produzione.


6

I modelli non sono altro che astrazioni di ciò che si vede nella vita reale. Sono progettati al fine di allontanare in maniera astratta le chiacchiere del sistema reale in osservazione, pur mantenendo informazioni sufficienti per supportare l'analisi desiderata.

Se un modello è sovrautilizzato, tiene conto di troppi dettagli su ciò che viene osservato e piccole modifiche su tale oggetto possono far perdere precisione al modello. D'altra parte, se un modello è inadatto, valuta così pochi attributi che le modifiche degne di nota sull'oggetto possono essere ignorate.

Si noti inoltre che l'outfit può essere visto come un overfit , a seconda del set di dati. Se l'input può essere classificato correttamente al 99% con un singolo attributo, si adatta il modello ai dati semplificando l'astrazione a una singola caratteristica. E, in questo caso, dovresti generalizzare troppo l'1% della base nella classe del 99% - o anche specificare il modello così tanto da poter vedere solo una classe.

Un modo ragionevole per dire che un modello non è né sopra né sottovalutato consiste nell'eseguire convalide incrociate. Dividi il tuo set di dati in k parti e dici di sceglierne una per eseguire l'analisi, mentre usi le altre parti k - 1 per addestrare il tuo modello. Considerando che l'input stesso non è distorto, dovresti essere in grado di avere la stessa varianza di dati da addestrare e valutare come avresti fatto durante l'utilizzo del modello nell'elaborazione della vita reale.


5

Semplicemente, un approccio comune è quello di aumentare la complessità del modello, rendendolo semplice e molto probabilmente inizialmente inadeguato, e aumentando la complessità del modello fino a quando non si assistono ai primi segni di overfitting usando una tecnica di ricampionamento come cross validation, bootstrap, eccetera.

Aumenta la complessità aggiungendo parametri (numero di neuroni nascosti per reti neurali artificiali, numero di alberi in una foresta casuale) o rilassando il termine di regolarizzazione (spesso chiamato lambda o C per macchine vettoriali di supporto) nel tuo modello.


3

Il CAPM (Capital Asset Pricing Model) in Finance è un classico esempio di modello underfit. È stato basato sulla bella teoria secondo cui "Gli investitori pagano solo per il rischio che non possono diversificare", quindi i rendimenti in eccesso attesi sono pari alla correlazione con i rendimenti del mercato.

Come formula [0] Ra = Rf + B (Rm - Rf) in cui Ra è il rendimento atteso dell'attività, Rf è il tasso privo di rischio, Rm è il tasso di rendimento di mercato e Beta è la correlazione con il premio azionario (Rm - Rf)

Questo è bello, elegante e sbagliato. Gli investitori sembrano richiedere un tasso più elevato di titoli di piccole dimensioni e titoli di valore (definiti da book to market o dividend yield).

Fama e French [1] hanno presentato un aggiornamento al modello, che aggiunge ulteriori beta per dimensioni e valore.

Quindi come fai a saperlo in senso generale? Quando le previsioni che stai facendo sono sbagliate e un'altra variabile con una spiegazione logica aumenta la qualità della previsione. È facile capire perché qualcuno potrebbe pensare che piccoli stock siano rischiosi, indipendentemente dal rischio non diversificabile. È una bella storia, supportata dai dati.

[0] http://www.investopedia.com/terms/c/capm.asp [1] http://en.wikipedia.org/wiki/Fama%E2%80%93French_three-factor_model

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.