xgboost回归网格优化代码
时间: 2024-10-20 08:15:58 浏览: 40
XGBoost是一个强大的梯度提升库,用于处理回归问题时,可以使用网格搜索(Grid Search)来优化超参数。以下是使用Python的sklearn库结合xgboost进行简单回归任务的网格优化示例:
```python
from sklearn.model_selection import GridSearchCV
import xgboost as xgb
# 假设我们有一个训练数据集 X_train, y_train
X_train = ...
y_train = ...
# 定义参数网格
param_grid = {
'n_estimators': [100, 200, 300],
'learning_rate': [0.01, 0.1, 0.3],
'gamma': [0, 0.5, 1],
'subsample': [0.7, 0.8, 0.9]
}
# 创建XGBoost Regressor
regr = xgb.XGBRegressor()
# 使用GridSearchCV进行超参数搜索
grid_search = GridSearchCV(regr, param_grid, cv=5, scoring='neg_mean_squared_error', return_train_score=True)
grid_search.fit(X_train, y_train)
# 输出最佳参数和性能指标
best_params = grid_search.best_params_
best_score = grid_search.best_score_
print(f"Best parameters: {best_params}")
print(f"Best score (RMSE): {-best_score:.2f}")
# 使用最优参数训练模型
opt_regr = xgb.XGBRegressor(**best_params)
opt_regr.fit(X_train, y_train)
```
在这个例子中,`cv=5`表示交叉验证次数,`scoring='neg_mean_squared_error'`则指定了评分标准,负均方误差(NME),因为GridSearchCV期望的是最小值。
阅读全文