梯度提升法

Python 的 Ensemble 方法

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 的 Ensemble 方法

等同於梯度下降

殘差示意

梯度下降:

損失函式

梯度示意

殘差 = 負梯度

負梯度示意

Python 的 Ensemble 方法

Gradient Boosting 分類器

Gradient Boosting 分類器

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 的 Ensemble 方法

Gradient Boosting 迴歸器

Gradient Boosting 迴歸器

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 的 Ensemble 方法

開始提升吧!

Python 的 Ensemble 方法

Preparing Video For Download...