XGBoostでのランダムサーチ
GridSearchCV は時間がかかることが多いため、実務ではこの演習で行うように RandomizedSearchCV を使うことがあります。良い点は、RandomizedSearchCV にするために GridSearchCV のコードを少し変更するだけでよいことです。大きな違いは、param_grid の代わりに param_distributions 引数を指定する必要がある点です。
この演習はコースの一部です
XGBoost で学ぶ極限の勾配ブースティング
演習の手順
gbm_param_gridという名前のパラメータグリッドを作成します。'n_estimators'には単一値25のリストを、'max_depth'には2から11の値のリスト(これにはrange(2, 12)を使います)を指定します。RandomizedSearchCVオブジェクトrandomized_mseを作成し、次を指定します:param_distributionsにパラメータグリッド、estimatorにXGBRegressor、scoringに"neg_mean_squared_error"、n_iterに5、cvに4。また、出力をより理解しやすくするためにverbose=1も指定します。RandomizedSearchCVオブジェクトをXとyに適合させます。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create the parameter grid: gbm_param_grid
gbm_param_grid = {
'____': [____],
'____': ____(____, ____)
}
# Instantiate the regressor: gbm
gbm = xgb.XGBRegressor(n_estimators=10)
# Perform random search: grid_mse
randomized_mse = ____
# Fit randomized_mse to the data
____
# Print the best parameters and lowest RMSE
print("Best parameters found: ", randomized_mse.best_params_)
print("Lowest RMSE found: ", np.sqrt(np.abs(randomized_mse.best_score_)))