始める無料で始める

個々のXGBoostの木を可視化する

これまでにXGBoostで回帰モデルと分類モデルの構築・評価を行いました。ここでは、モデルを視覚的に探究する方法に慣れていきます。住宅価格データセット全体を使ってXGBoostが作成した完全なブースティングモデルから、個々の決定木を可視化します。

XGBoost には、この種の可視化を簡単に行える plot_tree() 関数があります。XGBoost の学習APIでモデルを学習したら、そのモデルを plot_tree() に渡し、num_trees 引数でプロットしたい木の番号を指定します。

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

XGBoost で学ぶ極限の勾配ブースティング

コースを見る

演習の手順

  • "objective""reg:squarederror""max_depth"2 とするパラメータ辞書を作成します。
  • 10 ラウンドのブースティングと作成したパラメータ辞書を用いてモデルを学習し、結果を xg_reg に保存します。
  • xgb.plot_tree() を使って最初の木をプロットします。引数は2つで、モデル(ここでは xg_reg)と0始まりの num_trees です。最初の木を描画するには num_trees=0 を指定します。
  • 5番目の木をプロットします。
  • 最後(10番目)の木を横向きにプロットします。そのためには、追加のキーワード引数として rankdir="LR" を指定します。

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

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

# Create the DMatrix: housing_dmatrix
housing_dmatrix = xgb.DMatrix(data=X, label=y)

# Create the parameter dictionary: params
params = {"objective":"reg:squarederror", "max_depth":2}

# Train the model: xg_reg
xg_reg = xgb.train(params=params, dtrain=housing_dmatrix, num_boost_round=10)

# Plot the first tree
____
plt.show()

# Plot the fifth tree
____
plt.show()

# Plot the last tree sideways
____
plt.show()
コードを編集して実行