LightGBM vs XGBoost


25

Sto cercando di capire quale sia il migliore (più preciso, soprattutto nei problemi di classificazione)

Ho cercato articoli confrontando LightGBM e XGBoost ma ne ho trovati solo due:

  1. https://medium.com/implodinggradients/benchmarking-lightgbm-how-fast-is-lightgbm-vs-xgboost-15d224568031 - che riguarda solo la velocità ma non la precisione.
  2. https://github.com/Microsoft/LightGBM/wiki/Experiments - che proviene dagli autori di LightGBM e nessuna sorpresa che LightGBM vince lì.

Nei miei test ottengo praticamente la stessa AUC per entrambi gli algoritmi, ma LightGBM viene eseguito da 2 a 5 volte più velocemente.

Se LGBM è così bello, perché non ne sento così tanto qui e su Kaggle :)


Grazie, ma LightGBM ha anche pacchetti per R e Python usati dalla maggior parte dei kagglers. Lo sto usando con Python. Sui miei dati e ricerche su Internet LGBM sembra troppo perfetto: molto veloce e non meno preciso. Ma forse mi manca qualcosa qui se non è ancora così ampiamente usato :)
Sergey Nizhevyasov

Risposte:


21

LightGBM è una grande implementazione che è simile a XGBoost ma varia in alcuni modi specifici, specialmente nel modo in cui crea gli alberi.

Offre alcuni parametri diversi, ma la maggior parte di essi è molto simile alle loro controparti XGBoost.

Se si utilizzano gli stessi parametri, si ottiene quasi sempre un punteggio molto vicino. Nella maggior parte dei casi, l'allenamento sarà 2-10 volte più veloce.


Perché allora non lo usano più persone?

XGBoost è in circolazione da più tempo ed è già installato su molte macchine. LightGBM è piuttosto nuovo e all'inizio non aveva un wrapper Python. La versione corrente è più facile da installare e utilizzare, quindi non ci sono ostacoli qui.

Molti degli utenti più avanzati su Kaggle e siti simili usano già LightGBM e per ogni nuova competizione, ottiene sempre più copertura. Tuttavia, gli script di avvio si basano spesso su XGBoost poiché le persone semplicemente riutilizzano il loro vecchio codice e modificano alcuni parametri. Sono sicuro che questo aumenterà una volta che ci saranno alcuni tutorial e guide su come usarlo (la maggior parte delle guide non ScikitLearn si concentrano attualmente su reti XGBoost o neurali).


Grazie, ha senso. Forse per i migliori kaggler la potenza di calcolo non è un grosso problema, ed è più facile mantenere gli script.
Sergey Nizhevyasov il

10

XGBoost ora ha un'opzione di binning dell'istogramma per la crescita degli alberi simile a quella usata da LightGBM. Fornisce circa lo stesso livello di velocità e caratteristiche di precisione simili, sebbene gli algoritmi non siano ancora esattamente gli stessi.

Ci sono alcuni grafici e tabelle qui che mostrano come sono proprio uno sopra l'altro ora. https://github.com/dmlc/xgboost/issues/1950

Per essere onesti, LightGBM cita i propri test sulle prestazioni, dimostrandoli che continuano a tagliare XGBoost (hist), anche se non più di un ordine di grandezza. https://github.com/Microsoft/LightGBM/blob/master/docs/Experiments.rst#comparison-experiment

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.