始める無料で始める

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 にパラメータグリッド、estimatorXGBRegressorscoring"neg_mean_squared_error"n_iter5cv4。また、出力をより理解しやすくするために verbose=1 も指定します。
  • RandomizedSearchCV オブジェクトを Xy に適合させます。

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

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

# 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_)))
コードを編集して実行