🤔 Почему бустринг называется градиентным?



Потому что использует метод градиентного спуска для минимизации ошибки модели. В процессе обучения последовательности моделей каждая следующая модель обучается на ошибках, допущенных предыдущими моделями.



🟠Бустинг (Boosting)

Бустинг представляет собой ансамблевый метод, который обучает несколько слабых моделей (обычно деревьев решений) последовательно. Каждая новая модель пытается улучшить предсказания, исправляя ошибки предыдущих моделей.



🟠Градиентный спуск (Gradient Descent)

Градиентный спуск – это метод оптимизации, который используется для минимизации функции потерь путем итеративного изменения параметров модели в направлении, противоположном градиенту функции потерь.



🚩Основные шаги



1⃣Инициализация

Начальная модель (обычно константа), которая предсказывает среднее значение целевой переменной для задач регрессии или базовую вероятность для задач классификации.



2⃣Построение последовательности моделей

На каждом шаге вычисляются остатки (ошибки) предсказаний текущей модели. Обучается новая модель на этих остатках, чтобы минимизировать ошибку. Предсказания новой модели комбинируются с предсказаниями предыдущих моделей.



3⃣Обновление модели

Новая модель добавляется к ансамблю с учетом коэффициента обучения (\(\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)}")




Ставь 👍 и забирай 📚 Базу знаний