Что является таргетом (целевой переменной) для алгоритмов бустинга?

«Что является таргетом (целевой переменной) для алгоритмов бустинга?» — вопрос из категории Деревья и ансамбли, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Таргет (целевая переменная y) для алгоритмов бустинга (XGBoost, LightGBM, CatBoost) определяется конкретной задачей:

  • Регрессия: Непрерывное числовое значение (например, цена дома, время отклика).
  • Классификация: Метка класса. Для бинарной — 0 или 1 (или True/False). Для многоклассовой — целое число, представляющее класс.
  • Ранжирование: Релевантность (порядковый или числовой ранг).

Ключевая особенность бустинга: На каждой итерации новая базовая модель (обычно дерево) обучается не на исходном таргете, а на остатках (ансамблевых ошибках) предыдущих моделей. Алгоритм минимизирует целевую функцию, которая включает функцию потерь (например, MSE для регрессии, LogLoss для классификации) и регуляризацию.

Пример для бинарной классификации в XGBoost:

import xgboost as xgb
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split

# Генерация синтетических данных
X, y = make_classification(n_samples=1000, n_features=20, n_classes=2)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# y_train — таргет (массив из 0 и 1)
model = xgb.XGBClassifier(n_estimators=100, learning_rate=0.1, max_depth=3)
model.fit(X_train, y_train)

# Предсказание вероятностей класса 1
predictions = model.predict_proba(X_test)[:, 1]