Insaccamento, potenziamento e impilamento nell'apprendimento automatico


Risposte:


252

Tutti e tre sono i cosiddetti "meta-algoritmi": approcci per combinare diverse tecniche di apprendimento automatico in un modello predittivo al fine di diminuire la varianza ( insaccamento ), bias ( potenziamento ) o migliorare la forza predittiva ( accatastamento alias Ensemble ).

Ogni algoritmo consiste in due passaggi:

  1. Produrre una distribuzione di modelli ML semplici su sottoinsiemi dei dati originali.

  2. Combinazione della distribuzione in un modello "aggregato".

Ecco una breve descrizione di tutti e tre i metodi:

  1. Il bagging (acronimo di B ootstrap Agg regat ing ) è un modo per ridurre la varianza della previsione generando dati aggiuntivi per l'allenamento dal set di dati originale utilizzando combinazioni con ripetizioni per produrre multiset della stessa cardinalità / dimensione dei dati originali. Aumentando le dimensioni del set di allenamento non è possibile migliorare la forza predittiva del modello, ma semplicemente ridurre la varianza, sintonizzando in modo restrittivo la previsione sul risultato previsto.

  2. Il potenziamento è un approccio in due fasi, in cui si utilizzano innanzitutto sottoinsiemi dei dati originali per produrre una serie di modelli con prestazioni medie e quindi "aumentano" le loro prestazioni combinandole insieme utilizzando una particolare funzione di costo (= voto maggioritario). A differenza del bagging, nel classico potenziamento la creazione di un sottoinsieme non è casuale e dipende dalle prestazioni dei modelli precedenti: ogni nuovo sottoinsieme contiene gli elementi che (probabilmente erano) classificati erroneamente dai modelli precedenti.

  3. Lo stacking è simile al potenziamento: si applicano anche diversi modelli ai dati originali. La differenza qui è, tuttavia, che non hai solo una formula empirica per la tua funzione di peso, piuttosto introduci un meta-livello e usi un altro modello / approccio per stimare l'input insieme agli output di ogni modello per stimare i pesi o , in altre parole, per determinare quali modelli funzionano bene e cosa hanno dato male questi dati di input.

Ecco una tabella di confronto:

Tabella comparativa

Come vedi, tutti questi sono approcci diversi per combinare diversi modelli in uno migliore, e non esiste un singolo vincitore qui: tutto dipende dal tuo dominio e da ciò che farai. È ancora possibile trattare accatastamento come una sorta di più acconti d'amplificazione , tuttavia, la difficoltà di trovare un buon approccio per la vostra meta-livello rende difficile applicare questo approccio nella pratica.

Brevi esempi di ciascuno:

  1. Insaccamento : dati sull'ozono .
  2. Potenziamento : viene utilizzato per migliorare l' accuratezza del riconoscimento ottico dei caratteri (OCR).
  3. Impilamento : è usato nella classificazione dei microarrays del cancro in medicina.

8
Sembra che la tua definizione di potenziamento sia diversa da quella nel wiki (per cui ti sei collegato) o in questo documento . Entrambi affermano che nel potenziare il prossimo classificatore si usano i risultati di quelli precedentemente allenati, ma non lo hai menzionato. Il metodo che descrivi invece assomiglia ad alcune tecniche di voto / modello.
Alexander Rodin,

2
@ a-rodin: Grazie per aver sottolineato questo aspetto importante, ho completamente riscritto questa sezione per riflettere meglio questo. Per quanto riguarda la tua seconda osservazione, la mia comprensione è che il potenziamento è anche un tipo di voto / media o ho capito male?
Alexander Galkin,

@AlexanderGalkin Avevo in mente il potenziamento del gradiente al momento del commento: non sembra il voto ma piuttosto una tecnica di approssimazione della funzione iterativa. Ad esempio, AdaBoost assomiglia di più al voto, quindi non ne discuterò.
Alexander Rodin,

3
Nella tua prima frase dici che il potenziamento diminuisce la distorsione, ma nella tabella di confronto dici che aumenta la forza predittiva. Sono entrambi veri?
Ben Lindsay,

68

Insaccamento :

  1. ensemble parallelo : ogni modello è costruito indipendentemente

  2. mirare a ridurre la varianza , non la distorsione

  3. adatto per modelli a bassa polarizzazione ad alta varianza (modelli complessi)

  4. un esempio di metodo basato sugli alberi è la foresta casuale , che sviluppa alberi completamente sviluppati (notare che RF modifica la procedura sviluppata per ridurre la correlazione tra alberi)

Potenziamento :

  1. ensemble sequenziale : prova ad aggiungere nuovi modelli che funzionano bene dove mancano quelli precedenti

  2. mirare a ridurre il pregiudizio , non la varianza

  3. adatto a modelli a polarizzazione elevata a bassa varianza

  4. un esempio di un metodo basato sull'albero è l' aumento del gradiente


5
Commentare ciascuno dei punti per rispondere al perché è così e come viene raggiunto sarebbe un grande miglioramento nella tua risposta.
Tim

2
Puoi condividere qualsiasi documento / link che spieghi che il potenziamento riduce la varianza e come lo fa? Voglio solo capire più in profondità
GeorgeOfTheRF il

1
Grazie Tim, aggiungerò alcuni commenti più tardi. @ML_Pro, dalla procedura di potenziamento (es. Pagina 23 di cs.cornell.edu/courses/cs578/2005fa/… ), è comprensibile che il potenziamento possa ridurre la distorsione.
yuqian,

43

Solo per approfondire un po 'la risposta di Yuqian. L'idea alla base del bagging è che quando SOVRAPPOSTA con un metodo di regressione non parametrico (di solito alberi di regressione o classificazione, ma puoi essere praticamente qualsiasi metodo non parametrico), tendi ad andare alla varianza elevata, nessuna (o bassa) distorsione del pregiudizio / scostamento varianza. Questo perché un modello di overfitting è molto flessibile (così basso bias su molti campioni della stessa popolazione, se quelli erano disponibili) ma ha un'elevata variabilità (se raccolgo un campione e lo monto, e tu raccogli un campione e lo monti, il nostro i risultati differiranno perché la regressione non parametrica tiene traccia del rumore nei dati). Cosa possiamo fare? Possiamo prendere molti campioni (dal bootstrap), ciascuno con un overfitting e valutarli insieme. Ciò dovrebbe portare allo stesso pregiudizio (basso) ma annullare parte della varianza,

L'aumento del gradiente nel suo cuore funziona con le regressioni non parametriche UNDERFIT, che sono troppo semplici e quindi non abbastanza flessibili per descrivere la relazione reale nei dati (cioè distorte) ma, poiché sono inadeguate, hanno una bassa varianza (tendi per ottenere lo stesso risultato se si raccolgono nuovi set di dati). Come si corregge questo? Fondamentalmente, se sei inadatto, i RESIDUI del tuo modello contengono ancora una struttura utile (informazioni sulla popolazione), quindi aumenti l'albero che hai (o qualunque predittore non parametrico) con un albero costruito sui residui. Questo dovrebbe essere più flessibile dell'albero originale. Generi ripetutamente sempre più alberi, ciascuno nel passaggio k aumentato da un albero ponderato basato su un albero adattato ai residui del passaggio k-1. Uno di questi alberi dovrebbe essere ottimale, quindi finisci per ponderare tutti questi alberi insieme o selezionarne uno che sembra essere la soluzione migliore. Pertanto, l'incremento gradiente è un modo per costruire un gruppo di alberi candidati più flessibili.

Come tutti gli approcci di regressione o classificazione non parametrici, a volte l'inserimento o il potenziamento funzionano alla grande, a volte l'uno o l'altro approccio è mediocre, a volte l'uno o l'altro approccio (o entrambi) andrà in crash e brucerà.

Inoltre, entrambe queste tecniche possono essere applicate ad approcci di regressione diversi dagli alberi, ma sono più comunemente associati agli alberi, forse perché è difficile impostare parametri in modo da evitare un adattamento o un adattamento eccessivo.


3
+1 per l'argomento overfit = variance, underfit = bias! Uno dei motivi per utilizzare gli alberi decisionali è che sono strutturalmente instabili, quindi beneficiano maggiormente di lievi cambiamenti di condizioni. ( abbottanalytics.com/assets/pdf/… )
Mark Horvath il


3

Per ricapitolare in breve, Bagging e Boosting vengono normalmente utilizzati all'interno di un algoritmo, mentre Stacking viene in genere utilizzato per riepilogare diversi risultati da algoritmi diversi.

  • Insaccamento : sottoinsiemi Bootstrap di funzionalità ed esempi per ottenere diverse previsioni e media (o altri modi) i risultati, ad esempio Random Forest, che eliminano la varianza e non presentano problemi di overfitting.
  • Potenziamento : la differenza rispetto al Bagging è che il modello successivo sta cercando di imparare l'errore commesso dal precedente, ad esempio GBMe XGBoost, che elimina la varianza ma ha un problema di overfitting.
  • Stacking : normalmente utilizzato nelle competizioni, quando si utilizzano più algoritmi per allenarsi sullo stesso set di dati e sulla media (combinazioni massime, minime o di altro tipo) per ottenere una maggiore precisione della previsione.

2

sia l'inserimento che il potenziamento utilizzano un singolo algoritmo di apprendimento per tutti i passaggi; ma usano metodi diversi per la gestione dei campioni di addestramento. entrambi sono un metodo di apprendimento d'insieme che combina le decisioni di più modelli
Insaccamento :
1. ricampiona i dati di addestramento per ottenere sottoinsiemi M (bootstrap);
2. addestra classificatori M (stesso algoritmo) basati su set di dati M (campioni diversi);
3. il classificatore finale combina i risultati M votando;
peso dei campioni equamente;
i classificatori pesano allo stesso modo;
diminuisce l'errore diminuendo la varianza
Boosting : qui concentrarsi sull'algoritmo adaboost
1. iniziare con lo stesso peso per tutti i campioni nel primo turno;
2. nei seguenti round M-1, aumentare i pesi dei campioni classificati erroneamente nell'ultimo round, diminuire i pesi dei campioni correttamente classificati nell'ultimo round
3. utilizzando un voto ponderato, il classificatore finale combina più classificatori dei round precedenti e fornisce pesi più grandi ai classificatori con meno classificazioni errate.
campioni di re-ponderazione graduali; pesi per ogni round in base ai risultati ottenuti dall'ultimo round
di ripesatura dei campioni (potenziamento) anziché ricampionamento (insaccamento).


0

Insaccamento e potenziamento tendono ad usare molti modelli omogenei.

L'impilamento combina i risultati di tipi di modelli eterogenei.

Dato che nessun tipo di modello tende ad essere la soluzione migliore per tutta la distribuzione, è possibile capire perché ciò possa aumentare la potenza predittiva.

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.