Quali sono le somiglianze e le differenze tra questi 3 metodi:
- insacco,
- Promuovere,
- Impilabile?
Qual è il migliore? E perché?
Puoi darmi un esempio per ciascuno?
Quali sono le somiglianze e le differenze tra questi 3 metodi:
Qual è il migliore? E perché?
Puoi darmi un esempio per ciascuno?
Risposte:
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:
Produrre una distribuzione di modelli ML semplici su sottoinsiemi dei dati originali.
Combinazione della distribuzione in un modello "aggregato".
Ecco una breve descrizione di tutti e tre i metodi:
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.
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.
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:
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:
Insaccamento :
ensemble parallelo : ogni modello è costruito indipendentemente
mirare a ridurre la varianza , non la distorsione
adatto per modelli a bassa polarizzazione ad alta varianza (modelli complessi)
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 :
ensemble sequenziale : prova ad aggiungere nuovi modelli che funzionano bene dove mancano quelli precedenti
mirare a ridurre il pregiudizio , non la varianza
adatto a modelli a polarizzazione elevata a bassa varianza
un esempio di un metodo basato sull'albero è l' aumento del gradiente
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.
Vedi il mio post sul blog di apprendimento dell'ensemble
Fonti per questa immagine:
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.
Random Forest
, che eliminano la varianza e non presentano problemi di overfitting.GBM
e XGBoost
, che elimina la varianza ma ha un problema di overfitting.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).
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.