Python 如何传递fit_参数以拟合随机化SearchCV获取索引超出范围错误
我正在尝试用XGBRegressionor估计器拟合随机搜索CV,并希望将参数传递给拟合方法。我特别想设置XGBRegressionor的停止轮和评估度量。下面的代码给出了索引超出范围的错误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_
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
?到目前为止还不能让它工作。。。