使用 XGBoost 进行随机搜索
GridSearchCV 往往非常耗时,因此在实践中,您可能更想使用 RandomizedSearchCV,本练习将带您这样做。好消息是,您只需对原有的 GridSearchCV 代码做少量修改即可切换到 RandomizedSearchCV。关键区别在于,您需要提供 param_distributions 参数,而不是 param_grid 参数。
本练习是课程的一部分
使用 XGBoost 的极端梯度提升
练习说明
- 创建名为
gbm_param_grid的参数网格,其中包含:'n_estimators'的单个取值列表(25),以及'max_depth'的取值列表,范围为2到11(对此使用range(2, 12))。 - 创建名为
randomized_mse的RandomizedSearchCV对象,传入:将参数网格赋给param_distributions,将XGBRegressor赋给estimator,将"neg_mean_squared_error"赋给scoring,将5赋给n_iter,将4赋给cv。同时指定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_)))