如何实现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.发布于 2021-08-04 18:58:59
这一切看起来都是正确的。
您需要检查3*3*3*3*3=243超参数组合,因此可能需要一些时间(您可以通过首先拟合其中一个并乘以243来估计这一点,当然一些超参数会影响训练时间)。如果RandomizedSearchCV太长,您可以考虑使用它。
该警告只是一个警告,而不是一个错误;您可以按照它的建议,通过将您的目标设置为reg:squarederror (或升级您的xgboost包,因为这是当前的默认设置)来使其静默。
https://stackoverflow.com/questions/68655336
复制相似问题