LightGBM против XGBoost

25

Я пытаюсь понять, что лучше (точнее, особенно в задачах классификации)

Я искал статьи, сравнивающие LightGBM и XGBoost, но нашел только две:

  1. https://medium.com/implodinggradients/benchmarking-lightgbm-how-fast-is-lightgbm-vs-xgboost-15d224568031 - что касается только скорости, но не точности.
  2. https://github.com/Microsoft/LightGBM/wiki/Experiment - от авторов LightGBM, и неудивительно, что LightGBM выигрывает там.

В моих тестах я получаю практически одинаковый AUC для обоих алгоритмов, но LightGBM работает от 2 до 5 раз быстрее.

Если ЛГБМ такой крутой, почему я не слышу так много об этом здесь и на Kaggle :)

Сергей Нижевясов
источник
Спасибо, но LightGBM также имеет пакеты для R и Python, используемые большинством kagglers. Я использую это с Python. По моим данным и интернет-исследованиям LGBM кажется слишком совершенным: очень быстрым и не менее точным. Но, может быть, я что-то здесь
упускаю,

Ответы:

21

LightGBM - отличная реализация, которая похожа на XGBoost, но отличается несколькими специфическими способами, особенно в том, как она создает деревья.

Он предлагает несколько различных параметров, но большинство из них очень похожи на их аналоги XGBoost.

Если вы используете одни и те же параметры, вы почти всегда получаете очень близкую оценку. В большинстве случаев обучение будет проходить в 2-10 раз быстрее.


Почему тогда больше людей не используют это?

XGBoost существует дольше и уже установлен на многих машинах. LightGBM довольно новый и вначале не имел оболочки Python. Текущая версия проще в установке и использовании, поэтому никаких препятствий здесь нет.

Многие из более продвинутых пользователей Kaggle и аналогичных сайтов уже используют LightGBM, и для каждого нового конкурса он получает все больше и больше освещения. Тем не менее, начальные сценарии часто основаны на XGBoost, так как люди просто повторно используют свой старый код и настраивают несколько параметров. Я уверен, что это увеличится, как только появятся еще несколько учебных пособий и руководств по их использованию (большинство руководств, не относящихся к ScikitLearn, в настоящее время посвящены XGBoost или нейронным сетям).

Фрэнк Херферт
источник
Спасибо, это имеет смысл. Может быть, для высших kagglers вычислительная мощность не является большой проблемой, и легче поддерживать скрипты.
Сергей Нижевясов
10

В XGBoost теперь есть опция группировки гистограмм для роста деревьев, аналогичная той, которую использует LightGBM. Он обеспечивает примерно такой же уровень ускорения и схожие характеристики точности, хотя алгоритмы все еще не совсем одинаковы.

Здесь есть несколько графиков и таблиц, показывающих, как они сейчас находятся друг над другом. https://github.com/dmlc/xgboost/issues/1950

Справедливости ради, LightGBM приводит свои собственные тесты производительности, показывающие, что они по-прежнему вытесняют XGBoost (исторических), но уже не на порядок. https://github.com/Microsoft/LightGBM/blob/master/docs/Experiments.rst#comparison-experiment

Джеймс Д
источник