ベース学習器としての決定木
それでは、XGBoost モデルを使って住宅価格を予測してみましょう。動画で見た Boston, Massachusetts ではなく、Iowa 州 Ames のデータです!住宅価格のデータセットは df という DataFrame に事前に読み込まれています。シェルで中身を確認すると、家そのものや都市内の立地に関するさまざまな特徴量があることがわかります。
この演習では、ベース学習器として木を使うことが目標です。既定では XGBoost は木をベース学習器として使うため、ここで booster="gbtree" を指定する必要はありません。
xgboost は xgb としてインポート済みで、特徴量と目的変数の配列はそれぞれ X と y に用意されています。
この演習はコースの一部です
XGBoost で学ぶ極限の勾配ブースティング
演習の手順
dfを訓練用とテスト用に分割し、テスト用に 20% を確保します。random_stateは123を使用してください。XGBRegressorをxg_regとしてインスタンス化し、seedは123、objectiveは"reg:squarederror"、木の本数は 10 にします。注意: 既定でbooster="gbtree"なので、指定は不要です。- 学習データに
xg_regを適合させ、テストセットのラベルを予測します。予測結果はpredsという変数に保存してください。 sklearn.metricsから事前にインポートされているmean_squared_error()とnp.sqrt()を使ってrmseを計算します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create the training and test sets
X_train, X_test, y_train, y_test = ____(____, ____, ____=____, random_state=123)
# Instantiate the XGBRegressor: xg_reg
xg_reg = ____
# Fit the regressor to the training set
____
# Predict the labels of the test set: preds
preds = ____
# Compute the rmse: rmse
rmse = ____(____(____, ____))
print("RMSE: %f" % (rmse))