GBM gegen XGBOOST? Hauptunterschiede?

40

Ich versuche, die Hauptunterschiede zwischen GBM und XGBOOST zu verstehen. Ich habe versucht, es zu googeln, konnte aber keine guten Antworten finden, die die Unterschiede zwischen den beiden Algorithmen erklären und erklären, warum xgboost fast immer eine bessere Leistung als GBM erbringt. Was macht XGBOOST so schnell?

Ein Mann
quelle
XGBoost ist nicht so schnell. Lesen Sie dieses Experiment
agcala

Antworten:

36

Zitat des Autors von xgboost:

Sowohl xgboost als auch gbm folgen dem Prinzip der Gradientenverstärkung. Es gibt jedoch Unterschiede bei den Modellierungsdetails. Insbesondere verwendete xgboost eine stärker regulierte Modellformalisierung, um die Überanpassung zu steuern und so die Leistung zu verbessern.

Wir haben ein umfassendes Tutorial zur Einführung in das Modell aktualisiert, das Sie sich ansehen sollten. Einführung in Boosted Trees

Der Name xgboost bezieht sich jedoch tatsächlich auf das Konstruktionsziel, die Grenze der Berechnungsressourcen für Algorithmen mit verstärktem Baum zu erweitern. Welches ist der Grund, warum viele Menschen xgboost verwenden. Für das Modell ist es möglicherweise geeigneter, als regularisierte Gradientenverstärkung bezeichnet zu werden.

Bearbeiten: Es gibt eine detaillierte Anleitung zu xgboost, die weitere Unterschiede zeigt.

Verweise

https://www.quora.com/Was-ist-der- Unterschied- zwischen-der-R-gbm-gradienten-boosting-maschine-und-xgboost-extreme-gradienten-boosting

https://xgboost.readthedocs.io/en/latest/tutorials/model.html

Eisklinge
quelle
2
Gute Antwort. Das OP fragte auch, warum xgboost so schnell ist. Der Grund dafür ist, dass das Ensemble selbst nicht paralellisiert werden kann, da jeder Baum vom vorherigen abhängt. Sie können jedoch den Aufbau der verschiedenen Knoten in jeder Tiefe jedes Baums paralellisieren. Diese Art von Details macht xgboost so schnell.
Ricardo Cruz
13

Zusätzlich zu der Antwort von Icyblade haben die Entwickler von xgboost eine Reihe wichtiger Leistungsverbesserungen an verschiedenen Teilen der Implementierung vorgenommen, die einen großen Unterschied in Bezug auf Geschwindigkeit und Speichernutzung bewirken:

  1. Verwendung von Sparse-Matrizen mit sparsity-fähigen Algorithmen
  2. Verbesserte Datenstrukturen für eine bessere Prozessor-Cache-Auslastung, wodurch diese schneller wird.
  3. Bessere Unterstützung für die Multicore-Verarbeitung, wodurch die gesamte Trainingszeit verkürzt wird.

Nach meiner Erfahrung mit GBM und xgboost beim Trainieren großer Datensätze (über 5 Millionen Datensätze) konnte ich die Speichernutzung (in R) für denselben Datensatz erheblich reduzieren und fand es einfacher, mehrere Kerne zu verwenden, um die Trainingszeit zu verkürzen.

Sandeep S. Sandhu
quelle
10

Ein sehr wichtiger Unterschied ist xgboostdie Implementierung von DART, der Dropout-Regularisierung für Regressionsbäume .

Verweise

Rashmi, KV & Gilad-Bachrach, R. (2015). Dart: Dropouts treffen auf mehrere additive Regressionsbäume. arXiv-Vorabdruck arXiv: 1505.01866.

HoraceT
quelle
1
Dart ist auch in LGBM enthalten xgboost_dart_mode implementiert .
Agcala
0

Ich denke, der Unterschied zwischen der Gradientenverstärkung und dem Xgboost liegt in xgboost. Der Algorithmus konzentriert sich auf die Rechenleistung, indem er die Baumbildung parallelisiert, die man in diesem Blog sehen kann .

Gradient Boosting konzentriert sich nur auf die Varianz, nicht aber auf den Kompromiss zwischen Bias, wobei sich der xg-Boost auch auf den Regularisierungsfaktor konzentrieren kann.

purna15111
quelle
-1

Die Implementierung von XGBoost ist fehlerhaft. Lautlos abgestürzt beim Training auf der GPU in Version 082 . Es ist mir auch in Version 0.90 passiert , daher wurde das Problem bisher nicht behoben, und das in GitHub bereitgestellte "Update" hat bei mir nicht funktioniert.

LGBM 2.3.1 funktioniert wie ein Zauber von der Stange , obwohl die Installation etwas mehr Aufwand erfordert. Bisher keine Probleme beim GPU-Training.

Über XGBoost „ zu sein , so schnell “, sollten Sie einen Blick auf, diese Benchmarks .

Agcala
quelle
Das OP fragte nicht nach xgboost vs lightgbm.
oW_