【问题标题】:How to declare parameter grid in XGBRegressor如何在 XGBRegressor 中声明参数网格
【发布时间】:2021-10-09 19:10:21
【问题描述】:

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

regressor = xgb.XGBRegressor()
regressor.fit(X_train,y_train)
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]
}
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)

编译并反复显示此警告需要很长时间:

[16:45:55] WARNING: /workspace/src/objective/regression_obj.cu:152: 
reg:linear is now deprecated in favor of reg:squarederror.

【问题讨论】:

    标签: python machine-learning xgboost xgbregressor


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-12-04
      • 1970-01-01
      • 2015-10-03
      • 2012-01-15
      • 1970-01-01
      • 2018-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多