始める無料で始める

勾配ブースティングモデル

次は、勾配ブースティング(GB)モデルを学習させましょう。線形モデルはトヨタ・カムリ、GBはブラックホークヘリコプターに例えられることがあります。GBはランダムフォレストを上回るパフォーマンスを発揮する可能性がありますが、常にそうとは限りません。これは「ノーフリーランチ定理(No Free Lunch Theorem)」と呼ばれる考え方で、問題ごとにさまざまなモデルを試すことが大切であることを示しています。

GBはランダムフォレストと似たモデルですが、大きな違いは木が順番に構築される点です。各イテレーションで、次の木は前の木の残差誤差に対してフィッティングを行い、予測精度を段階的に高めていきます。

ここではハイパーパラメータの探索は行いません。すでに適切な値が設定されています。

この演習はコースの一部です

Python による金融のための Machine Learning

コースを見る

演習の手順

  • あらかじめ設定されているハイパーパラメータを使って、GradientBoostingRegressor オブジェクトを作成します。
  • gbr モデルを train_featurestrain_targets で学習させます。
  • トレーニングデータとテストデータの特徴量・ターゲットに対するスコアを表示します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

from sklearn.ensemble import GradientBoostingRegressor

# Create GB model -- hyperparameters have already been searched for you
gbr = ____(max_features=4,
                                learning_rate=0.01,
                                n_estimators=200,
                                subsample=0.6,
                                random_state=42)
gbr.fit(____)

print(gbr.score(train_features, train_targets))
____
コードを編集して実行