LightGBM vs XGBoost


25

Próbuję zrozumieć, co jest lepsze (dokładniejsze, szczególnie w przypadku problemów z klasyfikacją)

Szukałem artykułów porównujących LightGBM i XGBoost, ale znalazłem tylko dwa:

  1. https://medium.com/implodinggradients/benchmarking-lightgbm-how-fast-is-lightgbm-vs-xgboost-15d224568031 - co dotyczy tylko szybkości, ale nie dokładności.
  2. https://github.com/Microsoft/LightGBM/wiki/Experiments - który pochodzi od autorów LightGBM i nic dziwnego, że LightGBM tam wygrywa.

W moich testach mam prawie taki sam AUC dla obu algorytmów, ale LightGBM działa od 2 do 5 razy szybciej.

Jeśli LGBM jest tak fajny, dlaczego nie słyszę o nim tyle tutaj i na Kaggle :)


Dzięki, ale LightGBM ma również pakiety dla R i Pythona używane przez większość kagglerów. Używam go z Pythonem. Według moich badań danych i Internetu LGBM wydaje się zbyt doskonały: bardzo szybki i nie mniej dokładny. Ale może coś mi brakuje, jeśli nie jest jeszcze tak szeroko stosowane :)
Sergey Nizhevyasov

Odpowiedzi:


21

LightGBM jest świetną implementacją podobną do XGBoost, ale różni się na kilka konkretnych sposobów, szczególnie w sposobie tworzenia drzew.

Oferuje kilka różnych parametrów, ale większość z nich jest bardzo podobna do ich odpowiedników XGBoost.

Jeśli użyjesz tych samych parametrów, prawie zawsze uzyskasz bardzo bliski wynik. W większości przypadków trening będzie jednak 2-10 razy szybszy.


Dlaczego więc nie korzysta z niego więcej osób?

XGBoost działa już dłużej i jest już zainstalowany na wielu komputerach. LightGBM jest raczej nowy i początkowo nie miał otoki Pythona. Obecna wersja jest łatwiejsza do zainstalowania i używania, więc nie ma tu żadnych przeszkód.

Wielu bardziej zaawansowanych użytkowników Kaggle i podobnych stron korzysta już z LightGBM i dla każdej nowej konkurencji zyskuje coraz większy zasięg. Mimo to skrypty startowe są często oparte na XGBoost, ponieważ ludzie po prostu ponownie używają swojego starego kodu i dostosowują kilka parametrów. Jestem pewien, że wzrośnie, gdy pojawi się jeszcze kilka samouczków i przewodników na temat korzystania z niego (większość przewodników innych niż ScikitLearn koncentruje się obecnie na XGBoost lub sieciach neuronowych).


Dzięki, to ma sens. Może dla najlepszych kagglerów moc obliczeniowa nie jest dużym problemem i łatwiej jest zachować skrypty.
Sergey Nizhevyasov,

10

XGBoost ma teraz opcję grupowania histogramów dla wzrostu drzewa podobną do tej, której używa LightGBM. Zapewnia ten sam poziom przyspieszenia i podobną dokładność, chociaż algorytmy wciąż nie są dokładnie takie same.

Jest tu kilka wykresów i tabel pokazujących, jak są teraz na sobie. https://github.com/dmlc/xgboost/issues/1950

Aby być uczciwym, LightGBM powołuje się na własne testy wydajności, które pokazują, że wciąż przekraczają XGBoost (hist), choć już nie o rząd wielkości. https://github.com/Microsoft/LightGBM/blob/master/docs/Experiments.rst#comparison-experiment

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.