Come giudicare se un modello di apprendimento automatico supervisionato è troppo adatto o no?


27

Qualcuno può dirmi come giudicare se un modello di apprendimento automatico supervisionato è troppo adatto o no? Se non ho un set di dati di convalida esterno, voglio sapere se posso usare ROC di 10 volte la convalida incrociata per spiegare il sovradimensionamento. Se ho un set di dati di convalida esterno, cosa devo fare dopo?

Risposte:


29

In breve: convalidando il tuo modello. Il motivo principale della convalida è affermare che non si verifica un eccesso di equipaggiamento e stimare le prestazioni generalizzate del modello.

Overfit

Per prima cosa diamo un'occhiata a cosa sia effettivamente il sovraprezzo. I modelli vengono normalmente addestrati per adattarsi a un set di dati riducendo al minimo alcune funzioni di perdita su un set di allenamento. Esiste tuttavia un limite in cui la minimizzazione di questo errore di addestramento non andrà più a beneficio delle prestazioni reali dei modelli, ma minimizzerà solo l'errore sull'insieme specifico di dati. Ciò significa essenzialmente che il modello è stato adattato in modo troppo stretto ai punti dati specifici nel set di addestramento, cercando di modellare modelli nei dati provenienti dal rumore. Questo concetto si chiama overfit . Di seguito viene mostrato un esempio di overfit in cui viene visualizzato il set di allenamento in nero e un set più grande dalla popolazione effettiva in background. In questa figura puoi vedere che il modello blu è troppo stretto sul set di allenamento, modellando il rumore sottostante. inserisci qui la descrizione dell'immagine

Per valutare se un modello è sovrautilizzato o meno, è necessario stimare l'errore (o le prestazioni) generalizzato che il modello avrà sui dati futuri e confrontarlo con le nostre prestazioni sul set di addestramento. La stima di questo errore può essere eseguita in diversi modi.

Divisione del set di dati

L'approccio più semplice per stimare le prestazioni generalizzate è quello di suddividere il set di dati in tre parti, un set di addestramento, un set di validazione e un set di test. Il set di training viene utilizzato per addestrare il modello in modo che si adatti ai dati, il set di validazione viene utilizzato per misurare le differenze nelle prestazioni tra i modelli al fine di selezionare quello migliore e il set di test per affermare che il processo di selezione del modello non si adatta al primo due set.

Per stimare la quantità di overfit è sufficiente valutare le metriche di interesse sul set di test come ultimo passaggio e confrontarlo con le prestazioni sul set di allenamento. Citi il ​​ROC, ma secondo me dovresti anche guardare altre metriche come ad esempio il punteggio brier o un diagramma di calibrazione per garantire le prestazioni del modello. Questo dipende ovviamente dal tuo problema. Ci sono molte metriche, ma questo è oltre al punto qui.

Questo metodo è molto comune e rispettato ma pone una grande richiesta sulla disponibilità dei dati. Se il tuo set di dati è troppo piccolo, molto probabilmente perderai molte prestazioni e i tuoi risultati saranno distorti sulla divisione.

Convalida incrociata

Un modo per aggirare lo spreco di gran parte dei dati per la convalida e il test consiste nell'utilizzare la convalida incrociata (CV) che stima le prestazioni generalizzate utilizzando gli stessi dati utilizzati per addestrare il modello. L'idea alla base della convalida incrociata è quella di suddividere il set di dati in un determinato numero di sottoinsiemi e quindi utilizzare ciascuno di questi sottoinsiemi come set di test tenuti a turno mentre si utilizzano il resto dei dati per addestrare il modello. La media della metrica su tutte le pieghe fornisce una stima delle prestazioni del modello. Il modello finale viene quindi generalmente addestrato utilizzando tutti i dati.

Tuttavia, la stima del CV non è imparziale. Ma più pieghe usi, più piccola è la distorsione, ma invece ottieni una varianza maggiore.

Come nella suddivisione del set di dati otteniamo una stima delle prestazioni del modello e per stimare l'overfit devi semplicemente confrontare le metriche dal tuo CV con quelle acquisite dalla valutazione delle metriche sul tuo set di formazione.

bootstrap

L'idea alla base di bootstrap è simile al CV ma invece di dividere il set di dati in parti introduciamo casualità nell'allenamento disegnando ripetutamente set di addestramento dall'intero set di dati con la sostituzione ed eseguendo la fase di allenamento completa su ciascuno di questi campioni bootstrap.

La forma più semplice di convalida bootstrap valuta semplicemente le metriche sui campioni non presenti nel set di addestramento (cioè quelli esclusi) e la media su tutte le ripetizioni.

Questo metodo fornisce una stima delle prestazioni del modello che nella maggior parte dei casi sono meno distorte rispetto al CV. Ancora una volta, confrontandolo con le prestazioni del set di allenamento e si ottiene l'outfit.

Esistono modi per migliorare la convalida del bootstrap. Il metodo .632+ è noto per fornire stime migliori e più solide delle prestazioni del modello generalizzato, tenendo conto dell'overfit. (Se sei interessato l'articolo originale è una buona lettura: Miglioramenti alla convalida incrociata: il metodo Bootstrap 632+ )

Spero che questo risponda alla tua domanda. Se sei interessato alla validazione del modello, ti consiglio di leggere la parte sulla validazione nel libro Gli elementi dell'apprendimento statistico: data mining, inferenza e previsione che è liberamente disponibile online.


2
Si noti che la terminologia di convalida vs. test non è seguita in tutti i campi. Ad esempio nel mio campo (chimica analitica) la convalida è una procedura che dovrebbe dimostrare che il modello funziona bene (e misurare quanto bene funziona). Viene eseguito con il modello finale , non sono consentite ulteriori modifiche in seguito (o, in tal caso, è necessario convalidare nuovamente con dati indipendenti). Quindi chiamerei il tuo set di validazione un "set di test interno" o "set di test di ottimizzazione". I dati di test "esterni" non impediscono un eccesso di adattamento, ma possono essere utilizzati per misurare l'entità dell'eccessivo adattamento.
cbeleites supporta Monica l'

Ok, non ho esperienza nel tuo campo. Grazie per il chiarimento. Probabilmente è lo stesso anche in altri campi. Ho semplicemente usato la terminologia usata nel libro a cui mi sono legato alla fine. Spero non sia troppo confuso.
mentre l'

7

Ecco come è possibile stimare l'entità del sovradattamento:

  • Ottieni una stima degli errori interni. O resubstitutio (= prevedere i dati di allenamento) o se si esegue una "convalida" incrociata interna per ottimizzare gli iperparametri, anche quella misura sarebbe interessante.
  • Ottieni una stima dell'errore del set di test indipendente. Di solito, si consiglia il ricampionamento (convalida incrociata iterata o fuori dal bootstrap *. Ma è necessario fare attenzione che non si verifichino perdite di dati . Vale a dire che il ciclo di ricampionamento deve ricalcolare tutti i passaggi che hanno calcoli che coprono più di un caso. Ciò include pre fasi di elaborazione come centratura, ridimensionamento, ecc. Inoltre, assicurarsi di dividere al livello più alto se si dispone di una struttura di dati "gerarchica" (nota anche come "raggruppata") come misurazioni ripetute ad es. dello stesso paziente (=> ricampiona pazienti ).
  • Quindi confrontare quanto meglio appare la stima dell'errore "interno" rispetto a quella indipendente.

Ecco un esempio:
overfitting
Trefferrate = hit rate (% di classificazione corretta), Variablenzahl = numero di variabili (= complessità del modello)
Simboli:. risostituzione, + stima del congedo interno dell'ottimizzatore dell'iperparametro, o validazione incrociata esterna indipendente a livello del paziente

Funziona con ROC o misure di performance come il punteggio, la sensibilità, la specificità di Brier ...

* Non raccomando bootstrap .632 o .632+ qui: si mescolano già in errore di reintegrazione: è comunque possibile calcolarli in seguito dalle stime di reintegrazione e di avvio.


0

Il sovradimensionamento è semplicemente la conseguenza diretta di considerare i parametri statistici, e quindi i risultati ottenuti, come informazione utile senza verificare che non siano stati ottenuti in modo casuale. Pertanto, al fine di stimare la presenza di overfitting dobbiamo usare l'algoritmo su un database equivalente a quello reale ma con valori generati casualmente, ripetendo questa operazione molte volte possiamo stimare la probabilità di ottenere risultati uguali o migliori in modo casuale . Se questa probabilità è alta, è molto probabile che ci troviamo in una situazione di overfitting. Ad esempio, la probabilità che un polinomio di quarto grado abbia una correlazione di 1 con 5 punti casuali su un piano è del 100%, quindi questa correlazione è inutile e ci troviamo in una situazione di eccesso di adattamento.

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.