勾配ブースティング① (モデルの構築・評価)

勾配ブースティング決定木は、ランダムフォレストと同じように、アンサンブル法を採用しているアルゴリズムです。

ランダムフォレストが複数の決定木を並列に扱い平均を求める手法だったのに対して、勾配ブースティングでは逐次的に決定木を生成します。

具体的に説明すると、1つ前の決定木の誤りを修正して次の決定木を生成するということを繰り返していきます。

高い精度を誇る一方、ハイパーパラメータ設定の影響を受けやすいため、パラメータの調整には注意が必要です。

勾配ブースティング決定木の代表的なものは次の2つです。

  • XgBoost
  • LightGBM

モデルの構築・評価

勾配ブースティング決定木のモデルを構築し、評価を行います。

評価方法として、k分割交差検証法を使用します。

[Google Colaboratory]

1
2
3
4
5
import xgboost as xgb

xgb_reg = xgb.XGBRegressor(random_state=0)
k_fold = KFold(n_splits=5, shuffle=True, random_state=0)
xgb_scores = cross_val_score(xgb_reg, X, y, cv=k_fold, scoring="r2")

[実行結果]

精度評価スコア

精度評価スコアを表示します。

[Google Colaboratory]

1
2
print(f"各分割のスコア:{xgb_scores}")
print(f"平均スコア:{np.mean(xgb_scores)}")

[実行結果]

平均スコアが0.83ととても良い精度となりました。

次回はより高い精度を目指して、ハイパーパラメータの調整を行います。