Встречается на собеседованиях • сегодня
В чём разница в реализации алгоритма между XGBoost и LightGBM
XGBoost и LightGBM — это градиентные бустинговые фреймворки, но их ключевые различия в реализации:
-
Разбиение деревьев:
- XGBoost использует pre-sorted алгоритм (сортировка признаков перед поиском лучшего разбиения).
- LightGBM применяет гистограммный метод, группируя значения в бакеты, что ускоряет поиск разбиений.
-
Рост дерева:
- XGBoost строит деревья поуровнево (level-wise), что может быть избыточно для глубоких деревьев.
- LightGBM растёт листьями (leaf-wise), выбирая для разделения лист с максимальным gain, что часто даёт лучшую точность.
- Обработка категориальных признаков:
- 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 может быть точнее на малых данных из-за более детального разбиения.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы