勾配ブースティング

Pythonで学ぶアンサンブル手法

Román de las Heras

Data Scientist, Appodeal

勾配ブースティング入門

目的関数

  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で学ぶアンサンブル手法

勾配降下法との同等性

関数と残差

勾配降下法:

損失関数

勾配

残差 = 負の勾配

負の勾配

Pythonで学ぶアンサンブル手法

勾配ブースティング分類器

Gradient Boosting Classifier

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で学ぶアンサンブル手法

勾配ブースティング回帰器

Gradient Boosting Regressor

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...