网格搜索找到XGBoost 的n_estimators和learning_rate的最优组合
时间: 2024-01-22 14:19:06 浏览: 78
好的,我可以帮你完成这个任务。首先,我们需要定义要调整的超参数范围,然后使用网格搜索方法来寻找最佳组合。
以下是一个示例代码,你可以根据你的数据进行相应的修改:
```python
from sklearn.model_selection import GridSearchCV
from xgboost import XGBRegressor
# 定义要调整的超参数范围
param_grid = {
'n_estimators': [50, 100, 150, 200],
'learning_rate': [0.01, 0.1, 0.5, 1]
}
# 创建XGBRegressor模型
xgb = XGBRegressor()
# 使用网格搜索方法
grid_search = GridSearchCV(estimator=xgb, param_grid=param_grid, cv=5, n_jobs=-1, verbose=2)
# 训练模型
grid_search.fit(X_train, y_train)
# 输出最佳参数组合和得分
print("Best Parameters: ", grid_search.best_params_)
print("Best Score: ", grid_search.best_score_)
```
在这个示例代码中,我们使用了 GridSearchCV 类来进行网格搜索。其中,estimator 参数为我们要调整的模型,param_grid 参数为我们要调整的超参数范围,cv 参数为交叉验证的折数,n_jobs 参数为并行运行的作业数,verbose 参数为打印输出的详细程度。
最后,我们输出最佳参数组合和得分。你可以将 X_train 和 y_train 替换成你自己的训练数据。
阅读全文