Ответ
Таргет (целевая переменная 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]