Встречается на собеседованиях • сегодня

В чём разница в реализации алгоритма между XGBoost и LightGBM

XGBoost и LightGBM — это градиентные бустинговые фреймворки, но их ключевые различия в реализации:

  1. Разбиение деревьев:

    • XGBoost использует pre-sorted алгоритм (сортировка признаков перед поиском лучшего разбиения).
    • LightGBM применяет гистограммный метод, группируя значения в бакеты, что ускоряет поиск разбиений.
  2. Рост дерева:

    • XGBoost строит деревья поуровнево (level-wise), что может быть избыточно для глубоких деревьев.
    • LightGBM растёт листьями (leaf-wise), выбирая для разделения лист с максимальным gain, что часто даёт лучшую точность.
  1. Обработка категориальных признаков:
    • LightGBM поддерживает нативную обработку категорий (без one-hot encoding).
    • XGBoost требует предварительного преобразования (например, через pd.get_dummies).

Пример с категориальными признаками в LightGBM:

python
import lightgbm as lgb
params = {'feature_pre_filter': False, 'categorical_feature': ['category_col']}
train_data = lgb.Dataset(X, label=y, categorical_feature=['category_col'])
model = lgb.train(params, train_data)

Скорость и память: LightGBM обычно быстрее и требует меньше памяти из-за гистограммного подхода. XGBoost может быть точнее на малых данных из-за более детального разбиения.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы