Scikit learn XGBoost gpu无法使用scikit RandomizedSearchCV运行

Scikit learn XGBoost gpu无法使用scikit RandomizedSearchCV运行,scikit-learn,gpu,xgboost,Scikit Learn,Gpu,Xgboost,XGBoost在cpu和gpu上都可以正常工作,但只要我添加scikit的randomizedsearchcv用于超参数调优,它就会失败 系统:Ubuntu20 环境:使用Python3.7的conda虚拟环境 xgboost安装:conda安装-c anaconda py xgboost gpu 代码: 错误: Fitting 3 folds for each of 200 candidates, totalling 600 fits [Parallel(n_jobs=1)]: Using b

XGBoost在cpu和gpu上都可以正常工作,但只要我添加scikit的randomizedsearchcv用于超参数调优,它就会失败

系统:Ubuntu20

环境:使用Python3.7的conda虚拟环境

xgboost安装:conda安装-c anaconda py xgboost gpu

代码:

错误:

Fitting 3 folds for each of 200 candidates, totalling 600 fits
[Parallel(n_jobs=1)]: Using backend SequentialBackend with 1 concurrent workers.
/home/polabs1/anaconda3/envs/PoEnv_XGB_gpu/lib/python3.7/site-packages/sklearn/model_selection/_validation.py:552: FitFailedWarning: Estimator fit failed. The score on this train-test partition for these parameters will be set to nan. Details: 
Traceback (most recent call last):
  File "/home/polabs1/anaconda3/envs/PoEnv_XGB_gpu/lib/python3.7/site-packages/sklearn/model_selection/_validation.py", line 531, in _fit_and_score
    estimator.fit(X_train, y_train, **fit_params)
  File "/home/polabs1/anaconda3/envs/PoEnv_XGB_gpu/lib/python3.7/site-packages/xgboost/sklearn.py", line 396, in fit
    callbacks=callbacks)
  File "/home/polabs1/anaconda3/envs/PoEnv_XGB_gpu/lib/python3.7/site-packages/xgboost/training.py", line 216, in train
    xgb_model=xgb_model, callbacks=callbacks)
  File "/home/polabs1/anaconda3/envs/PoEnv_XGB_gpu/lib/python3.7/site-packages/xgboost/training.py", line 74, in _train_internal
    bst.update(dtrain, i, obj)
  File "/home/polabs1/anaconda3/envs/PoEnv_XGB_gpu/lib/python3.7/site-packages/xgboost/core.py", line 1109, in update
    dtrain.handle))
  File "/home/polabs1/anaconda3/envs/PoEnv_XGB_gpu/lib/python3.7/site-packages/xgboost/core.py", line 176, in _check_call
    raise XGBoostError(py_str(_LIB.XGBGetLastError()))
xgboost.core.XGBoostError: Invalid Input: 's', valid values are: {'approx', 'auto', 'exact', 'gpu_exact', 'gpu_hist', 'hist'}

谢谢各位

参数分布参数必须是列表/数组的字典。 当前代码将
eval\u metric
tree\u方法
解释为您输入的参数

params['eval_metric'] = ['r', 'm', 's', 'e']
params['tree_method'] = ['g', 'p', 'u', '_', 'h', 'i', 's', 't']
要修复它,您需要将相关行替换为

params['eval_metric'] = ['rmse']
params['tree_method'] = ['gpu_hist']

谢谢你,先生,你是一位绅士和学者。非常感谢。
params['eval_metric'] = ['rmse']
params['tree_method'] = ['gpu_hist']