2015-12-08 5 views
12

XGBoost utilizza il metodo dell'addestramento additivo in cui modella il residuo del modello precedente.In che modo XGBoost esegue il calcolo parallelo?

Questo è sequenziale, tuttavia, come funziona il calcolo parallelo?

+0

Grazie per aver chiesto - Ho avuto la stessa domanda. – nkhuyu

+0

Un bel blog in [here] (http://www.parallelr.com/parallel-computation-with-r-and-xgboost/) per coprire parallelamente e XGboost. – Patric

risposta

19

Xgboost non esegue più alberi in parallelo come hai notato, hai bisogno di previsioni dopo ogni albero per aggiornare i gradienti.

Piuttosto esegue la parallelizzazione ENTRO un singolo albero my utilizzando openMP per creare rami in modo indipendente.

Per osservare questo, creare un set di dati gigante ed eseguire con n_rounds = 1. Vedrai tutti i tuoi core che sparano su un albero. Questo è il motivo per cui è così ben progettato.

+0

Per ulteriori dettagli, consultare http://zhanpengfang.github.io/418home.html. –

+0

@T. Scharf Ma come funziona questo per più nodi, cioè più computer anziché 1 computer con più core? La quantità di comunicazione per sincronizzare l'albero all'interno di un albero sarebbe immensa. – AbdealiJK

+0

Sì, no, per aggirare questo fatto .. @AbdealiJK ma se i tuoi dati sono così grandi devi distribuirlo questo è il prezzo che paghi –