Python 如何传递fit_参数以拟合随机化SearchCV获取索引超出范围错误

Python 如何传递fit_参数以拟合随机化SearchCV获取索引超出范围错误,python,scikit-learn,xgboost,Python,Scikit Learn,Xgboost,我正在尝试用XGBRegressionor估计器拟合随机搜索CV,并希望将参数传递给拟合方法。我特别想设置XGBRegressionor的停止轮和评估度量。下面的代码给出了索引超出范围的错误 xgb_fit_params = {'eval_metric': 'rmse', 'early_stopping_rounds': 50, 'eval_set' :None } xgb_param_grid = {'reg_

我正在尝试用XGBRegressionor估计器拟合随机搜索CV,并希望将参数传递给拟合方法。我特别想设置XGBRegressionor的停止轮和评估度量。下面的代码给出了索引超出范围的错误

xgb_fit_params = {'eval_metric': 'rmse', 
              'early_stopping_rounds': 50,
              'eval_set' :None
             }
xgb_param_grid = {'reg_alpha': [0.1, 0.5, 1, 2, 3],
              'reg_lambda': [0.1, 0.5, 1, 2, 3, 4],
              'gamma':[0, 0.1, 0,5, 1],
              'colsample_bytree': [0.6,0.7, 0.8],
              'max_depth' : [4,5,6]
             }

model = xgb.XGBRegressor(max_depth=5, 
                    learning_rate=0.035, 
                    n_estimators=1000, 
                    silent=False, 
                    objective='reg:linear', 
                    min_child_weight=1, 
                    max_delta_step=0, 
                    subsample=1, 
                    scale_pos_weight=1, 
                    seed=2866) 

random_search = RandomizedSearchCV(model, 
                               param_distributions=xgb_param_grid,
                               n_iter=20,
                               verbose=2,
                               n_jobs=-1,
                               fit_params=xgb_fit_params,
                               random_state=2866)
random_search.fit(X_train_all, y_train)

我不知道你正在用的软件包。。。但是这个错误意味着列表中的一个元素不够。如果你能说出确切的错误,我们会更有帮助。顺便说一句,假设包本身没有错误,您定义的列表之一太短……您应该在这里发布完整的错误堆栈跟踪。另外,为什么要将
None
传递到
eval\u集合
。没有随机搜索CV,这些fit_参数工作正常吗?我想我已经找到了答案。提前停止需要一个eval set参数。一旦移除,它就开始工作。Thx.试图运行与您@Fred R.相同的程序,是否有办法通过
fit\u参数传递
eval\u set
?到目前为止还不能让它工作。。。