Un modello troppo equipaggiato è necessariamente inutile?


25

Supponiamo che un modello abbia un'accuratezza del 100% sui dati di allenamento, ma un'accuratezza del 70% sui dati di test. È vero il seguente argomento su questo modello?

È ovvio che questo è un modello troppo adatto. L'accuratezza del test può essere migliorata riducendo l'eccessivo adattamento. Tuttavia, questo modello può ancora essere un modello utile, poiché ha un'accuratezza accettabile per i dati di test.


17
Se il 70% è accettabile nelle applicazioni particolari, sono d'accordo con te.
Richard Hardy,

6
Concordo pienamente con @RichardHardy. Prendiamo, ad esempio, una foresta casuale: spesso, per costruzione, le prestazioni degli esemplari (non le prestazioni out-of-the-bag) sono vicine al 100%, quindi decisamente eccessive. Tuttavia, le prestazioni inferiori valutate out-of-bag o su set di test / validazione potrebbero essere abbastanza elevate da renderlo un modello utile.
Michael M,

1
@Metariat Perché no? Questa precisione ottenuta sul set di test che non viene utilizzato nella fase di allenamento.
Hossein,

3
@Metariat, un simile argomento può eliminare gran parte della pratica statistica, ad esempio lo stimatore OLS nel modello lineare normale, il test per l'uguaglianza di un campione significa un valore ipotizzato e cosa no. Ciò che è interessante è che l'argomento non dipende dal sovradimensionamento del modello sul campione di addestramento. È valido anche per modelli con vestibilità ridotta e qualsiasi modello in generale. Non è corretto? t
Richard Hardy,

4
Non definirei quel modello troppo adatto. Viene stabilito un modello sovradimensionato confrontando le prestazioni di convalida con le prestazioni di prova. Anche allora, solo se le prestazioni del test fossero considerevolmente inferiori a quelle accettabili, possibilmente catastroficamente. Le prestazioni di allenamento non significano nulla.
Firebug,

Risposte:


32

Penso che l'argomento sia corretto. Se il 70% è accettabile in una particolare applicazione, il modello è utile anche se è sovralimentato (più in generale, indipendentemente dal fatto che sia sovradimensionato o meno).

Mentre il bilanciamento del sovraprezzo con quello insufficiente riguarda l' ottimalità (ricerca di una soluzione ottimale), avere prestazioni soddisfacenti riguarda la sufficienza (il modello funziona abbastanza bene per l'attività?). Un modello può essere sufficientemente buono senza essere ottimale.

Modifica: dopo i commenti di Firebug e Matthew Drury sotto l'OP, aggiungerò che per giudicare se il modello è sovradimensionato senza sapere che le prestazioni di validazione possono essere problematiche. Firebug suggerisce di confrontare la validazione con le prestazioni del test per misurare la quantità di overfitting. Tuttavia, quando il modello offre un'accuratezza del 100% sul set di allenamento senza fornire un'accuratezza del 100% sul set di test, è un indicatore di un possibile overfitting (specialmente in caso di regressione ma non necessariamente in classifica).


Hai chiesto un esempio: prendi il codice per una rete neurale nel set di dati dell'iride su stats.stackexchange.com/a/273930/2958 e poi prova con set.seed(100)un'illustrazione come il fenomeno descritto qui e set.seed(15)per il contrario. Forse meglio dire "un indicatore di un possibile eccesso di equipaggiamento"
Henry,

È mai possibile che un modello raggiunga una precisione del 100% sia su treno che su prova e non sia sovralimentato?
Rika,

1
@Breeze, penso che potresti chiedere questo su un thread separato (e collegarti a questo per un contesto se necessario).
Richard Hardy,

Ho appena fatto qui il link
Rika

25

Nel mio progetto passato con il rilevamento delle frodi con carta di credito, desideriamo intenzionalmente adattarci ai dati / codificati per ricordare casi di frode. (Notare, il sovradimensionamento di una classe non è esattamente il problema generale di sovralimentazione di cui OP ha parlato.) Tale sistema ha falsi positivi relativamente bassi e soddisfa le nostre esigenze.

Quindi, direi, il modello troppo adatto può essere utile in alcuni casi.


5
Questa risposta è piuttosto interessante in quanto presenta un caso d'uso. Penso che con "hard-coded to remember" @ hxd1011 significa che il modello si è assicurato che ciascuno dei casi di frode segnalati portasse a una "bandiera di frode" e che non fossero stati smussati o interpolati da una funzione adattata . Qualcosa del genere, giusto?
IcannotFixQuesto

@IcannotFixQuesto sì. In effetti, abbiamo provato molti altri modi per controllare i falsi positivi. Ma cercare di esagerare con i casi di frode, ha funzionato in modo folle.
Haitao Du,

3
Nel tuo caso, la tua funzione di valutazione sta sovrappesando il TPR e sottopeso il FPR, ad esempio punteggio F_ con >> 1. (Ora so perché la mia compagnia di carte di debito è così fastidiosa, βββ
segnalano

3
Potrebbe essere fastidioso, ma è migliaia di volte meno fastidioso che avere il tuo finanziamento rovinato perché qualcuno di cattivo ha i dati della tua carta.
Matthew Drury,

12

Forse: attenzione. Quando dici che la precisione del 70% (comunque la misuri) è abbastanza buona per te, sembra che tu stia assumendo che gli errori siano distribuiti in modo casuale o uniforme.

Ma uno dei modi di guardare al sovradimensionamento è che accade quando una tecnica modello consente (e il suo processo di allenamento incoraggia) di prestare troppa attenzione alle stranezze nel set di addestramento. I soggetti nella popolazione generale che condividono queste stranezze possono avere risultati altamente sbilanciati.

Quindi forse finisci con un modello che dice che tutti i cani rossi hanno il cancro - a causa di quella particolare stranezza nei tuoi dati di allenamento. O che le persone sposate di età compresa tra 24 e 26 anni abbiano quasi la garanzia di presentare richieste di risarcimento assicurative fraudolente. La precisione del 70% lascia molto spazio alle tasche di soggetti sbagliate al 100% perché il modello è troppo adatto.

(Non essere troppo in forma non è una garanzia che non si avranno sacche di previsioni sbagliate. In effetti un modello inadatto avrà una serie di previsioni sbagliate, ma con un eccesso di equipaggiamento si sa che si sta aumentando l'effetto delle stranezze nei dati di allenamento .)


Grazie. Vuoi dire che è possibile che questa precisione del 70% sia ottenuta sulle stranezze nei dati di allenamento disponibili anche nei dati di test? Non possiamo giudicare in base alla precisione dei dati del test? Penso che le stranezze nei dati di allenamento disponibili nei dati di test debbano essere apprese durante l'allenamento.
Hossein,

1
Se ti capissi, sarebbe il contrario: il sovradimensionamento alle stranezze ti ha dato la tua alta precisione nell'allenamento. Il motivo per cui si ottiene una precisione inferiore nei test è che queste stranezze non si applicano al set di dati complessivo. Ma, naturalmente, i tuoi set di addestramento e test - anche se fai una convalida incrociata, il che aiuta - possono essere bizzarri in relazione alla tua popolazione. Nel qual caso i risultati dei test / convalide non predicono bene le prestazioni.
Wayne,

Hai ragione sul fatto che il set di test potrebbe essere bizzarro in relazione alla popolazione, ma questo non è specifico per i modelli sovralimentati. Tutte le nostre valutazioni ne soffrono e non abbiamo altra scelta che fare affidamento sul set di test come proxy per la popolazione reale.
Hossein,

È vero, non è unico per i modelli sovralimentati, ma è amplificato in un modello sovradimensionato. Voglio dire per definizione che il modello è troppo adatto perché soffre chiaramente di dare troppa enfasi alle stranezze.
Wayne,

7

No, possono essere utili, ma dipende dal tuo scopo. Mi vengono in mente diverse cose:

  1. Classificazione sensibile ai costi: se la tua funzione di valutazione supera il TPR e sottopesa l'FPR, utilizziamo punteggio con . (come la risposta di @ hxd1011 su antifrode)Fββ1

  2. Un simile classificatore può essere davvero utile in un ensemble . Potremmo avere un classificatore con pesi normali, uno che superi il TPR, uno che superi il FNR. Quindi anche il semplice voto su tre regole, o la media, darà una migliore AUC rispetto a qualsiasi singolo miglior classificatore. Se ogni modello utilizza diversi iperparametri (o set di training sottocampionati o architetture di modelli), questo acquista un po 'di immunità dal sovradimensionamento.

  3. Allo stesso modo, per l' anti-spam, l'anti-frode o il credit scoring in tempo reale , è giusto e desiderabile utilizzare una gerarchia di classificatori. I classificatori di livello 1 dovrebbero valutare molto velocemente (ms) ed è ok avere un FPR alto ; eventuali errori commessi verranno colti da classificatori di livello superiore più precisi, completi, più lenti o, alla fine, umani. Esempio ovvio: impedire ai titoli di notizie false di acquisizioni di account Twitter come "l'attentato dinamitardo alla Casa Bianca del 2013 uccide tre" dall'influenzare miliardi di dollari di scambi nel giro di pochi mesi dalla pubblicazione. Va bene per il classificatore di livello 1 segnalarlo come positivo per lo spam; consentiamo che ci voglia un po 'di tempo per determinare (automaticamente) la verità / la menzogna delle notizie sensazionali ma non verificate.


2

Non sto negando che un modello troppo equipaggiato possa essere ancora utile. Ma tieni presente che questo 70% potrebbe essere un'informazione fuorviante. Quello che ti serve per giudicare se un modello è utile o meno è l' errore fuori dal campione , non l'errore del test (l' errore fuori dal campione non è noto, quindi dobbiamo stimarlo usando un set di test in cieco ) e che il 70% è a malapena la buona approssimazione.

Per essere sicuri di trovarci sulla stessa pagina della terminologia dopo il commento di @RichardHardy, definiamo l'errore di test come l'errore ottenuto quando si applica il modello sul set di test cieco. E l'errore fuori campione è l'errore quando si applica il modello a tutta la popolazione.

L'approssimazione dell'errore fuori campione dipende da due cose: il modello stesso e i dati.

  • Un modello "ottimale" cede a una precisione (di prova) che difficilmente dipende dai dati, in questo caso sarebbe una buona approssimazione. "Indipendentemente" dai dati, l'errore di previsione sarebbe stabile.

  • Tuttavia, l'accuratezza di un modello sovradimensionato dipende fortemente dai dati (come hai menzionato al 100% sul set di addestramento e al 70% sull'altro set). Pertanto, quando si applica a un altro set di dati, l'accuratezza potrebbe essere inferiore al 70% (o superiore) e potrebbero verificarsi brutte sorprese. In altre parole, quel 70% ti dice cosa credi che sia, ma non lo è.


1
Dal momento che il set di test utilizzato che ottiene una precisione del 70% non viene visualizzato nella fase di addestramento, non è una buona stima dell'errore fuori dal campione? Penso che la differenza tra errore di addestramento (100%) ed errore di prova (70%) non sia una buona indicazione della differenza tra errore fuori campione ed errore di prova. È possibile che il modello sovralimentato esegua una precisione del 70% nel mondo reale, mentre è preciso al 100% per i dati di allenamento. Mi aspetto che l'errore di allenamento sia inferiore all'errore di test, poiché i dati di allenamento vengono utilizzati per generare il modello, ma i dati di test non vengono visualizzati durante l'allenamento.
Hossein,

5
Penso che potresti aver confuso il set di convalida, il set di test e i loro rispettivi errori. L' errore di test è l' errore fuori dal campione . Mentre l' errore di convalida è una misura ottimistica di un modello selezionato, l' errore del test non lo è. L' errore del test è una stima imparziale delle prestazioni del modello su un nuovo campione della stessa popolazione. Possiamo stimare la varianza dell'errore del test, quindi stiamo abbastanza bene conoscendo solo l' errore del test purché il set di test non sia troppo piccolo. @Hossein
Richard Hardy,

3
Potete approfondire la differenza tra errore fuori campione ed errore di test? Da quanto ho capito, entrambi sono gli errori riscontrati quando si applica il modello a campioni non utilizzati per addestrare il modello. L'unica differenza possibile che posso vedere è quando si usano i dati delle serie temporali, i dati fuori campione dovrebbero provenire da punti temporali successivi, ma questa domanda non ne fa menzione.
Nuclear Wang,

1
Dal mio punto di vista, il test di errore è l'errore ottenuto quando si applica il modello in un set cieco, è un'approssimazione dell'errore fuori campione, che è l'errore ottenuto quando si applica il modello all'intera popolazione. E non è la stessa cosa, l'informazione preziosa è l'errore fuori dal campione. E quando il modello è sovraccarico, l'errore del test non è stabile e potrebbero verificarsi cattive supposte sugli altri set di dati.
Metariat,

4
@Metariat, hai ragione che l'errore del test è una stima e potrebbe essere diverso da un set di test all'altro. Tuttavia, come ho detto prima, non c'è motivo di aspettarsi che l'errore del test sottovaluti l'errore vero (in media non lo fa). Quindi, prendendo un campione di prova sufficientemente ampio, possiamo limitare l'errore del test con un livello di confidenza desiderato a un intervallo desiderato. Ora più praticamente, forse dovresti definire l'errore del test modificando la tua risposta per assicurarti che non ci siano malintesi su cosa intendi quando si contrappone l'errore del test con l'errore fuori campione.
Richard Hardy,
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.