LightGBM vs XGBoost


25

Ich versuche zu verstehen, was besser ist (genauer, insbesondere bei Klassifizierungsproblemen)

Ich habe nach Artikeln gesucht, die LightGBM und XGBoost vergleichen, aber nur zwei gefunden:

  1. https://medium.com/implodinggradients/benchmarking-lightgbm-how-fast-is-lightgbm-vs-xgboost-15d224568031 - es geht nur um Geschwindigkeit, aber nicht um Genauigkeit.
  2. https://github.com/Microsoft/LightGBM/wiki/Experiments - das ist von den Autoren von LightGBM und kein Wunder, dass LightGBM dort gewinnt.

In meinen Tests erhalte ich für beide Algorithmen ziemlich die gleiche AUC, aber LightGBM läuft 2- bis 5-mal schneller.

Wenn LGBM so cool ist, warum höre ich hier und auf Kaggle nicht so viel darüber :)


Vielen Dank, aber LightGBM hat auch Pakete für R und Python, die von den meisten Kagglern verwendet werden. Ich benutze es mit Python. Nach meinen Daten- und Internetrecherchen scheint LGBM zu perfekt: sehr schnell und nicht weniger genau. Aber vielleicht fehlt mir hier etwas, wenn es noch nicht so weit verbreitet ist :)
Sergey Nizhevyasov

Antworten:


21

LightGBM ist eine großartige Implementierung, die XGBoost ähnelt, sich jedoch in einigen Punkten unterscheidet, insbesondere in der Art und Weise, wie die Bäume erstellt werden.

Es bietet einige unterschiedliche Parameter, aber die meisten sind ihren XGBoost-Gegenstücken sehr ähnlich.

Wenn Sie die gleichen Parameter verwenden, erhalten Sie fast immer eine sehr gute Punktzahl. In den meisten Fällen ist das Training jedoch 2-10 mal schneller.


Warum benutzen es dann nicht mehr Leute?

XGBoost gibt es schon länger und ist bereits auf vielen Rechnern installiert. LightGBM ist ziemlich neu und hatte zunächst keinen Python-Wrapper. Die aktuelle Version ist einfacher zu installieren und zu benutzen, so dass hier keine Hindernisse auftreten.

Viele der fortgeschritteneren Benutzer von Kaggle und ähnlichen Websites verwenden bereits LightGBM und werden von Wettbewerb zu Wettbewerb mehr und mehr abgedeckt. Die Starterskripte basieren jedoch häufig auf XGBoost, da die Benutzer nur ihren alten Code wiederverwenden und einige Parameter anpassen. Ich bin mir sicher, dass dies zunehmen wird, sobald es ein paar weitere Tutorials und Anleitungen zur Verwendung gibt (die meisten Anleitungen, die nicht von ScikitLearn stammen, konzentrieren sich derzeit auf XGBoost oder neuronale Netze).


Danke, das macht Sinn. Vielleicht ist die Rechenleistung für Top-Kaggler kein großes Problem, und es ist einfacher, die Skripte zu behalten.
Sergey Nizhevyasov

10

XGBoost verfügt jetzt über eine Histogramm-Binning-Option für das Wachstum von Bäumen, die der von LightGBM ähnelt. Es bietet ungefähr das gleiche Maß an Beschleunigung und ähnliche Genauigkeitsmerkmale, obwohl die Algorithmen immer noch nicht genau gleich sind.

Hier finden Sie einige Diagramme und Tabellen, die zeigen, wie sie jetzt aufeinander liegen. https://github.com/dmlc/xgboost/issues/1950

Um fair zu sein, zitiert LightGBM ihre eigenen Leistungstests, die zeigen, dass sie XGBoost (hist) immer noch verdrängen, wenn auch nicht mehr in einer Größenordnung. https://github.com/Microsoft/LightGBM/blob/master/docs/Experiments.rst#comparison-experiment

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.