XGBoostでのグリッドサーチ
XGBoostで個々のパラメータを調整する方法を学んだので、次は scikit-learn の GridSearch と RandomizedSearch を内部交差検証付きで行う GridSearchCV と RandomizedSearchCV で、パラメータチューニングを一段引き上げましょう。これらを使って、複数のパラメータにわたる候補値の組み合わせを総当たり的に探索し、最良のモデルを見つけます。まずは GridSearchCV から始めましょう!
この演習はコースの一部です
XGBoost で学ぶ極限の勾配ブースティング
演習の手順
gbm_param_gridというパラメータグリッドを作成し、"colsample_bytree"は値のリスト(0.3、0.7)、"n_estimators"は単一値のリスト(50)、"max_depth"は2つの値のリスト(2、5)を含めます。gbmという名前のXGBRegressorオブジェクトをインスタンス化します。grid_mseというGridSearchCVオブジェクトを作成し、param_gridにパラメータグリッド、estimatorにXGBRegressor、scoringに"neg_mean_squared_error"、cvに4を指定します。出力を理解しやすくするため、verbose=1も指定します。GridSearchCVオブジェクトをXとyに適合させます。grid_mseの.best_params_と.best_score_属性を使って、最良のパラメータ値と最小のRMSEをそれぞれ表示します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create the parameter grid: gbm_param_grid
gbm_param_grid = {
'____': [____, ____],
'____': [____],
'____': [____, ____]
}
# Instantiate the regressor: gbm
gbm = ____
# Perform grid search: grid_mse
grid_mse = ____
# Fit grid_mse to the data
____
# Print the best parameters and lowest RMSE
print("Best parameters found: ", ____)
print("Lowest RMSE found: ", np.sqrt(np.abs(____)))