我正在使用sklearn和xgboost在python(v3.6)上工作一个回归模型。我想要使用early_stopping_rounds计算sklearn.cross_val_score。以下代码会返回错误:
此外,如果我尝试将参数传递为'xgbregressor__early_stopping_rounds'(在一些相关主题中找到),则会出现以下错误:
xgb_model = xgb.XGBRegressor(n_estimators=600,
learning_rate=0.06)
xgb_cv = cross_val_score(xgb_model, train_x, train_y,
cv=5, scoring='neg_mean_absolute_error',
fit_params={'early_stopping_rounds':3})
IndexError: list index out of range
此外,如果我尝试将参数传递为'xgbregressor__early_stopping_rounds'(在一些相关主题中找到),则会出现以下错误:
TypeError: fit() got an unexpected keyword argument
'xgbregressor__early_stopping_rounds'
如果我在不使用 "fit_params" 的情况下运行相同的模型,一切都正常。 在使用 cross_val_score 时有办法避免这个错误吗?
xgboost.cv
。链接:http://xgboost.readthedocs.io/en/latest/python/python_api.html。不使用它的原因是什么? - Eran Moshexgboost.cv
,遵循这篇文章[https://jessesw.com/XG-Boost/]的指导,但后来又切换回sklearn框架。我只是感觉用它更舒适。你认为使用`xgboost.cv`有什么实际优势吗? - busy_c