Intervalli di previsione per algoritmi di apprendimento automatico


14

Voglio sapere se il processo descritto di seguito è valido / accettabile e qualsiasi giustificazione disponibile.

L'idea: gli algoritmi di apprendimento supervisionato non assumono strutture / distribuzioni sottostanti sui dati. Alla fine della giornata forniscono stime dei punti. Spero in qualche modo di quantificare l'incertezza delle stime. Ora, il processo di costruzione del modello ML è intrinsecamente casuale (ad esempio nel campionamento per la convalida incrociata per l'ottimizzazione dell'iperparametro e nel sottocampionamento nello GBM stocastico), quindi una pipeline di modellazione mi darà un output diverso per gli stessi predittori con ogni seme diverso. La mia (ingenua) idea è di eseguire ripetutamente questo processo per elaborare una distribuzione della previsione, e spero di poter fare delle dichiarazioni sull'incertezza delle previsioni.

Se è importante, i set di dati con cui lavoro sono in genere molto piccoli (~ 200 righe.)

ha senso?

Per chiarire, in realtà non sto eseguendo il bootstrap dei dati in senso tradizionale (ovvero non sto ricampionando i dati). Lo stesso set di dati viene utilizzato in ogni iterazione, sto solo sfruttando la casualità in xval e stocastico GBM.


2
Se si desidera effettivamente un intervallo di previsione (anziché un intervallo di confidenza), è necessario tenere conto della variazione delle osservazioni sul modello, non solo della variazione delle previsioni del modello
Glen_b -Reinstate Monica

@Glen_b o l'approccio delineato nel PO o una versione boostrapped mi procurerebbe gli intervalli di confidenza? Sto iniziando a pensare che un intervallo di previsione non sia possibile senza specificare una distribuzione sottostante per i dati, quindi potrebbe essere necessario riformulare la domanda la prossima volta.
kevinykuo,

Puoi eseguire il bootstrap degli intervalli di previsione ... semplicemente non facendo ciò che descrivi nel Q.
Glen_b -Reinstate Monica,

@Glen_b potresti descrivere come farlo in una risposta?
kevinykuo,

1
Non ho potuto dare una risposta sufficiente qui. Ma vedi Davison & Hinkley (1997) nei capitoli su regressione multipla e GLM che danno un'idea del tipo di cose che potrebbero essere necessarie. Nel caso della regressione multipla, ad esempio, i residui vengono ricampionati per ottenere la stima bootstrap dell'incertezza predittiva (variazione delle previsioni dovuta all'incertezza dei parametri) e ricampionati di nuovo per gestire la variazione del processo. Con uno schema adeguato potresti forse anche essere in grado di gestire l'incertezza delle specifiche del modello in quel primo passaggio, ma non puoi omettere il secondo passaggio per la variabilità del processo
Glen_b -Restate Monica

Risposte:


5

A me sembra un buon approccio come qualsiasi per quantificare le incertezze nelle previsioni. Assicurati di ripetere tutti i passaggi della modellazione (per un GBM che sarebbe la regolazione dei parametri) da zero in ogni ricampionamento bootstrap. Potrebbe anche essere utile avviare il bootstrap delle classifiche di importanza per quantificare l'incertezza nelle classifiche.

Ho scoperto che a volte gli intervalli non contengono la previsione effettiva, soprattutto quando si stima una probabilità. Aumentare il numero minimo di osservazioni in ciascun nodo terminale di solito risolve questo, almeno nei dati con cui ho lavorato.

La previsione conforme sembra un approccio utile per quantificare la fiducia nelle previsioni su nuovi dati. Finora ho solo graffiato la superficie e altri probabilmente sono più adatti a dare un'opinione su questo.

C'è un codice R grezzo nella mia risposta a questo post sulla ricerca di un intervallo di previsione GBM.

Spero che sia di aiuto!


2

Puoi dividere la tua incertezza sulla previsione in termini di "bias" e "varianza". Il termine bias si riferisce alla mancata specificazione del modello: se si adatta il modello lineare per la funzione non lineare, si otterrà sempre qualche errore. Il termine 'varianza' si riferisce all'errore nella stima dei parametri del modello. Ti avvicini al conto per la varianza parte dell'incertezza, mentre non puoi stimare il bias.

Come suggerito dalla previsione conforme di @ErikL è un approccio teoricamente giustificato che adotta un'idea abbastanza simile per bootstrap. La previsione conforme usando la ricostruzione del modello usando un nuovo punto tiene conto sia della distorsione che della varianza, mentre per la regressione hanno bisogno di risorse computazionali significative. Puoi provarlo con Python usando una libreria non conformista .


1

No, sembra una cattiva idea. In primo luogo, come ha sottolineato Alexey, c'è parzialità e varianza. Anche per la migliore scelta dei parametri, non puoi evitare la varianza. Il tuo metodo non tenta nemmeno di affrontarlo. C'è un altro problema molto importante, che alcuni, e probabilmente la maggior parte, dell'errore del tuo modello sono nei dati, piuttosto che nella casualità intrinseca del modello. (Per non parlare del fatto che alcuni modelli, come la semplice regressione lineare, non sono affatto casuali e, per i modelli casuali, il grado di casualità varia da modello a modello)

Ti consiglio di testare il tuo approccio su alcuni semplici dati simulati e su alcuni modelli che conosci. Sono sicuro che, per motivi che ho descritto, il tuo errore stimato sarà molto più piccolo dell'errore reale (o la tua distribuzione sarà molto più ristretta).

Per stimare la distribuzione degli errori è possibile utilizzare una vecchia convalida incrociata valida.


0

Sto pensando a questo problema ora. Ecco i miei risultati:

(1) Metodo Delta
(2) Ricampionamento Bootstrap
(3) Metodo bayesiano
(4) Stima della media varianza (MVE)

L'idea sta cercando di stimare le due fonti della variabilità della previsione, l'incertezza dalla stima dei parametri del modello e l'errore irriducibile.

Ecco alcuni riferimenti:

Approcci di Machine Learning per la stima dell'intervallo di previsione per l'output del modello, Durga L. Shrestha, Dimitri P. Solomatine, 2006
Un confronto di alcune stime di errore per i modelli di rete neurale, Robert Tibshirani, 1995
Revisione completa degli intervalli di previsione basati su rete neurale e Nuovo Advances, Abbas khosravi, Doug Creighton, 2011

Spero che questo mi aiuti e corregga quanto sopra è inappropriato. Mi piacerebbe sentire di più dagli altri.


1
Potresti spiegare come questo post affronta la domanda originale?
whuber

Il titolo è "PI per algoritmi ML", @kevinykuo chiede se il suo modo di "bootstraping" funziona. Sto indicando diversi riferimenti su alcuni metodi utilizzati in PI per Neural Network.
Demo
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.