Потому что использует метод градиентного спуска для минимизации ошибки модели. В процессе обучения последовательности моделей каждая следующая модель обучается на ошибках, допущенных предыдущими моделями.
Бустинг представляет собой ансамблевый метод, который обучает несколько слабых моделей (обычно деревьев решений) последовательно. Каждая новая модель пытается улучшить предсказания, исправляя ошибки предыдущих моделей.
Градиентный спуск – это метод оптимизации, который используется для минимизации функции потерь путем итеративного изменения параметров модели в направлении, противоположном градиенту функции потерь.
Начальная модель (обычно константа), которая предсказывает среднее значение целевой переменной для задач регрессии или базовую вероятность для задач классификации.
На каждом шаге вычисляются остатки (ошибки) предсказаний текущей модели. Обучается новая модель на этих остатках, чтобы минимизировать ошибку. Предсказания новой модели комбинируются с предсказаниями предыдущих моделей.
Новая модель добавляется к ансамблю с учетом коэффициента обучения (\(\eta\)), который контролирует вклад новой модели в общий ансамбль.
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.datasets import make_regression
from sklearn.model_selection import train_test_split
# Генерация данных
X, y = make_regression(n_samples=1000, n_features=20, noise=0.1)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Модель градиентного бустинга
model = GradientBoostingRegressor(n_estimators=100, learning_rate=0.1, max_depth=3)
model.fit(X_train, y_train)
# Предсказание и оценка
y_pred = model.predict(X_test)
print(f"R^2 Score: {model.score(X_test, y_test)}")
Ставь 👍 и забирай 📚 Базу знаний