1. 学ぶ
  2. /
  3. コース
  4. /
  5. XGBoost で学ぶ極限の勾配ブースティング

Connected

演習

線形ベース学習器

これまでにXGBoostで木をベースモデルとして使いましたが、ここではもう一つの種類である線形学習器を使ってみましょう。このモデルはXGBoostではそれほど一般的ではありませんが、XGBoostの強力な学習APIを使って正則化付きの線形回帰を作成できます。ただし一般的でないため、xgb.train() のような scikit-learn 互換ではないXGBoost独自の関数を使ってモデルを構築する必要があります。

これを行うには、使用したいブースター(ベースモデル)の種類を記述するパラメータ辞書を作成します(Chapter 1で xgb.cv() を使ったときに辞書を作成した方法と同様です)。ブースタータイプ(ベースモデル)を定義するキーと値のペアは "booster":"gblinear" です。

モデルを作成したら、これまでと同様にモデルの .train() と .predict() メソッドを使えます。

ここではデータはすでに学習用とテスト用に分割されているので、XGBoostの学習APIで必要となる DMatrix オブジェクトの作成から始めましょう。

指示

100 XP
  • 2つの DMatrix オブジェクトを作成します。学習用は DM_train(X_train と y_train)、テスト用は DM_test(X_test と y_test)。
  • 使用する "booster" の種類("gblinear")と、最小化する "objective"("reg:squarederror")を定義したパラメータ辞書を作成します。
  • xgb.train() を使ってモデルを学習します。次のパラメータに引数を指定します:params、dtrain、num_boost_round。ブースティング回数は 5 にします。
  • テストセットに対するラベルを xg_reg.predict() で予測し、DM_test を渡します。preds に代入してください。
  • 'Submit Answer' を押してRMSEを確認しましょう!