开始使用免费开始使用

使用 XGBoost 进行随机搜索

GridSearchCV 往往非常耗时,因此在实践中,您可能更想使用 RandomizedSearchCV,本练习将带您这样做。好消息是,您只需对原有的 GridSearchCV 代码做少量修改即可切换到 RandomizedSearchCV。关键区别在于,您需要提供 param_distributions 参数,而不是 param_grid 参数。

本练习是课程的一部分

使用 XGBoost 的极端梯度提升

查看课程

练习说明

  • 创建名为 gbm_param_grid 的参数网格,其中包含:'n_estimators' 的单个取值列表(25),以及 'max_depth' 的取值列表,范围为 211(对此使用 range(2, 12))。
  • 创建名为 randomized_mseRandomizedSearchCV 对象,传入:将参数网格赋给 param_distributions,将 XGBRegressor 赋给 estimator,将 "neg_mean_squared_error" 赋给 scoring,将 5 赋给 n_iter,将 4 赋给 cv。同时指定 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_)))
编辑并运行代码