和風ましらに

機械学習とか勉強したことを書き認めるブログ

勾配ブースティングを説明してみた

勾配ブースティングについて、ざくっと整理。

アルゴリズムの基本原理は、 「構築した学習器まででの予想値と実測値の残差(勾配)を次の学習器で学習する。」

目的変数が二乗誤差の場合は、 実測値と予測値の差分が、次の学習器での学習対象となります。

なので分岐の際は、回帰木の平均二乗誤差(MSE Mean Squard Error)が用いられます。 各ノードでの平均値からの二乗誤差を見て、分岐前と分岐後で差が最大になる説明変数・閾値で分岐。

なので、分類問題の場合でも回帰木が使われる。

学習は下の感じで、一つ前の学習木の予測結果と実測値を次の学習器で学習して、 全体の損失が最小になるように 決めていく。

GBDTの有名どころとされているxgboostの場合、分岐の際は勾配を使って(hessian)分岐していきます。 だから厳密にはこの方法で分岐はしてません。

参考文献: Frontiers | Gradient boosting machines, a tutorial