Perché abbiamo bisogno di XGBoost e Random Forest?


25

Non ero chiaro su un paio di concetti:

  1. XGBoost converte gli studenti deboli in studenti forti. Qual è il vantaggio di farlo? Combinando molti studenti deboli invece di usare un solo albero?

  2. La foresta casuale usa vari campioni dall'albero per creare un albero. Qual è il vantaggio di questo metodo invece di usare un albero singolare?

Risposte:


35

È più facile iniziare con la seconda domanda e poi passare alla prima.

insacco

Random Forest è un algoritmo di insaccamento. Riduce la varianza.

Supponi di avere modelli molto inaffidabili, come gli alberi decisionali. (Perché inaffidabile? Perché se modifichi un po 'i tuoi dati, l'albero decisionale creato può essere molto diverso.) In tal caso, puoi creare un modello robusto (ridurre la varianza) attraverso il bagging - il bagging è quando crei modelli diversi ricampionando i tuoi dati per rendere più robusto il modello risultante.

La foresta casuale è ciò che chiamiamo insaccamento applicato agli alberi delle decisioni, ma non è diverso da altri algoritmi di insaccamento.

Perché vorresti farlo? Dipende dal problema. Ma di solito, è altamente desiderabile che il modello sia stabile.

Aumentare

L'aumento riduce la varianza e riduce anche la distorsione. Riduce la varianza perché si utilizzano più modelli (insaccamento). Riduce il pregiudizio addestrando il modello successivo dicendogli quali errori hanno commesso i modelli precedenti (la parte potenziante).

Esistono due algoritmi principali:

  • Adaboost: questo è l'algoritmo originale; dici ai modelli successivi di punire più pesantemente le osservazioni errate dai modelli precedenti
  • Aumento del gradiente: ti alleni ogni modello successivo usando i residui (la differenza tra i valori previsti e reali)

In questi gruppi, lo studente di base deve essere debole. Se si adatta ai dati, non ci saranno residui o errori su cui i modelli successivi si baseranno. Perché questi buoni modelli? Bene, la maggior parte delle competizioni su siti Web come Kaggle sono state vinte usando alberi a gradiente. La scienza dei dati è una scienza empirica, "perché funziona" è abbastanza buona. In ogni caso, nota che i modelli di potenziamento possono sovralimentare (anche se empiricamente non è molto comune).

Un altro motivo per cui l'aumento del gradiente, in particolare, è anche piuttosto interessante: perché rende molto facile usare diverse funzioni di perdita, anche quando la derivata non è convessa. Ad esempio, quando si utilizza la previsione probabilistica, è possibile utilizzare elementi come la funzione flipper come funzione di perdita; qualcosa che è molto più difficile con le reti neurali (perché la derivata è sempre costante).

[Interessante nota storica: il potenziamento era in origine un'invenzione teorica motivata dalla domanda " possiamo costruire un modello più forte usando modelli più deboli "]


Avviso: le persone a volte confondono alberi casuali con incrementi di gradiente e foresta, solo perché entrambi usano alberi decisionali, ma sono due famiglie di gruppi molto diverse.


1
Il potenziamento riduce la distorsione modellando iterativamente il residuo e la varianza prendendo una media ponderata; cf. § 5.5 Distorsione, varianza e stabilità , pagg. 118, Potenziamento: fondamenti e algoritmi , Robert E. Schapire, Yoav Freund.
Emre,

@Emre, ovviamente hai ragione. Qualcuno ha modificato il mio post e ha cambiato riduci con l' aumento . L'ho ripristinato.
Ricardo Cruz,

8

Quando si crea un albero, è necessario definire alcuni criteri per la divisione dei nodi. Questi includono metriche come Information Gain e Gini Index. Questi sono approcci euristici , non sono garantiti per offrire la migliore divisione possibile.

Peso nel fatto che alcuni attributi sono meno rilevanti e / o più rumorosi e molti altri problemi che si verificano nei dati reali. In breve, non puoi costruire un albero perfetto in un tempo di calcolo decente (puoi ovviamente costruire tutti gli alberi possibili e testare il meglio, ma poi dovresti aspettare alcuni anni per allenarti anche in un set di dati di medie dimensioni).

Dato che non possiamo avere l' albero migliore , abbiamo approssimazioni. Un'approssimazione è costruire molti alberi (usando diverse partizioni di dati o partizioni di attributi), poiché prevediamo che la maggior parte degli alberi sia in qualche modo corretta e consideriamo le loro classificazioni in un sistema di voto; questo dovrebbe occuparsi della maggior parte del rumore, la partizione verticale può occuparsi di attributi irrilevanti, l'euristica ha meno importanza e forse altri vantaggi.


1

Vorrei aggiungere una piccola aggiunta alle buone risposte. Il problema principale è l'adattamento eccessivo. Non appena si dispone di più di un parametro e si aggiungono anche funzioni non lineari, tutti gli algoritmi iniziano a sovrautilizzare. Vedono qualcosa nei dati che non esiste. Come quando è buio o la nebbia è forte le persone tendono a vedere cose nell'oscurità / nebbia che non esistono. Quasi tutti gli algoritmi computazionali sono più adatti rispetto agli umani. Anche le regressioni lineari iniziano a mostrare strani coefficienti quando le variabili sono altamente correlate. Se non ci fosse overfitting allora i soliti alberi decisionali, su cui si basano quegli algoritmi, sarebbero stati migliori di Random Forest o XGBoost.

E non esiste una scienza esatta sul perché si verifichi un overfitting e perché alcuni algoritmi siano migliori di altri. In teoria i modelli ARIMA sono molto solidi, ma la pratica mostra che è meglio usare tecniche di livellamento esponenziale e ARIMA non può nemmeno differenziare le variabili che si comportano secondo ARIMA ma con parametri diversi.

Alcune reti neurali e in particolare le reti neurali convoluzionali sembrano avere un insufficiente adattamento. Allo stesso tempo, l'idea originale di reti neurali completamente connesse fallisce con un alto numero di neuroni a causa del sovradimensionamento.

Le principali possibilità per combattere il sovrautilizzo sono:

  1. campionamento Casuale
  2. media su più modelli
  3. randomizzare il modello (caduta casuale di neuroni durante l'allenamento delle reti neurali)

Se capisco correttamente gli algoritmi sia Random Forest che XGBoost eseguono campionamenti casuali e calcolano la media su più modelli e quindi riesco a ridurre l'overfit.

Nel concorso di riconoscimento delle immagini ImageNet, il miglior modello per il 2016 (Shao et al) è stato una combinazione di diversi modelli davvero validi. Alcuni di loro hanno vinto la competizione negli anni precedenti. Questo modello ha avuto un errore del 20% in meno rispetto a qualsiasi modello su cui era basato. Questo è il modo in cui la media su più modelli potrebbe essere forte nella lotta contro il sovradimensionamento.

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.