Градиентный бустинг

Ансамблевые методы в Python

Román de las Heras

Data Scientist, Appodeal

Введение в градиентный бустинг

function_objective.png

  1. Начальная модель (слабый оценщик): $y\sim f_1(X)$
  2. Новая модель подгоняется к остаткам: $y-f_1(X)\sim f_2(X)$
  3. Новая аддитивная модель: $y\sim f_1(X)+f_2(X)$
  4. Повторяется $n$ раз или до достижения нужной точности
  5. Итоговая аддитивная модель: $$y\sim f_1(X)+f_2(X)+ ... +f_n(x)=\sum_{i=1}^{n} f_i(X)$$
Ансамблевые методы в Python

Связь с градиентным спуском

function_residuals.png

Градиентный спуск:

function_loss.png

function_gradient.png

Остатки = отрицательный градиент

function_gradient_negative.png

Ансамблевые методы в Python

Классификатор градиентного бустинга

Классификатор градиентного бустинга

from sklearn.ensemble import GradientBoostingClassifier
clf_gbm = GradientBoostingClassifier(
   n_estimators=100,
   learning_rate=0.1,
   max_depth=3,
   min_samples_split,
   min_samples_leaf,
   max_features
)
  • n_estimators
    • По умолчанию: 100
  • learning_rate
    • По умолчанию: 0.1
  • max_depth
    • По умолчанию: 3
  • min_samples_split
  • min_samples_leaf
  • max_features
Ансамблевые методы в Python

Регрессор градиентного бустинга

Регрессор градиентного бустинга

from sklearn.ensemble import GradientBoostingRegressor
reg_gbm = GradientBoostingRegressor(
   n_estimators=100,
   learning_rate=0.1,
   max_depth=3,
   min_samples_split,
   min_samples_leaf,
   max_features
)
Ансамблевые методы в Python

Давайте потренируемся!

Ансамблевые методы в Python

Preparing Video For Download...