首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在XGBRegressor中声明参数网格

如何在XGBRegressor中声明参数网格
EN

Stack Overflow用户
提问于 2021-08-04 17:01:54
回答 1查看 58关注 0票数 0

如何实现param_grid并获得xgb的最佳超参数?

代码语言:javascript
复制
regressor = xgb.XGBRegressor()
regressor.fit(X_train,y_train)
代码语言:javascript
复制
param_grid = {
    'max_depth' :[3,4,5],
    'learning_rate':[0.1, 0.01, 0.5],
    'gamma':[0,0.25,1],
    'reg_lambda':[0, 1.0, 10.0],
    'scale_pos_weight':[1,3,5]
}
代码语言:javascript
复制
optimal_params = GridSearchCV(estimator = xgb.XGBRegressor(subsample=0.9, colsample_bytree=0.5), param_grid = param_grid, verbose = 0,)
optimal_params.fit(X_train, y_train, verbose = False)

它需要花费很长时间来编译,并反复显示此警告:

代码语言:javascript
复制
[16:45:55] WARNING: /workspace/src/objective/regression_obj.cu:152: 
reg:linear is now deprecated in favor of reg:squarederror.
EN

回答 1

Stack Overflow用户

发布于 2021-08-04 18:58:59

这一切看起来都是正确的。

您需要检查3*3*3*3*3=243超参数组合,因此可能需要一些时间(您可以通过首先拟合其中一个并乘以243来估计这一点,当然一些超参数会影响训练时间)。如果RandomizedSearchCV太长,您可以考虑使用它。

该警告只是一个警告,而不是一个错误;您可以按照它的建议,通过将您的目标设置为reg:squarederror (或升级您的xgboost包,因为这是当前的默认设置)来使其静默。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68655336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档