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?
40
Antworten:
Zitat des Autors von
xgboost
: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
quelle
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:
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.
quelle
Ein sehr wichtiger Unterschied ist
xgboost
die 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.
quelle
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.
quelle
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 .
quelle