gpt4 book ai didi

python - xgboost 的 cross_val_score 为 "early_stopping_rounds"返回 "IndexError"

转载 作者:太空宇宙 更新时间:2023-11-03 14:09:01 26 4
gpt4 key购买 nike

我正在使用 sklearn 和 xgboost 在 python (v3.6) 中研究回归模型。我想用 Early_stopping_rounds 计算 sklearn.cross_val_score 。以下代码返回错误:

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 时有什么方法可以避免此错误吗?

最佳答案

用glao的回答解决了这个问题GridSearchCV - XGBoost - Early Stopping ,按照 lbcommer 的建议 - 谢谢!

为了避免过度拟合,我使用训练数据的单独部分作为验证数据集来评估算法。请参阅下面的代码:

train_x, val_x, train_y, val_y = train_test_split(train_x, train_y, test_size = 0.30, random_state=1)

xgb_model = xgb.XGBRegressor(n_estimators=600, learning_rate=0.06)

fit_params={'early_stopping_rounds': 30,
'eval_metric': 'mae',
'verbose': False,
'eval_set': [[val_x, val_y]]}

xgb_cv = cross_val_score(xgb_model, train_x, train_y,
cv = 5,
scoring = 'neg_mean_absolute_error',
fit_params = fit_params)

关于python - xgboost 的 cross_val_score 为 "early_stopping_rounds"返回 "IndexError",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48653038/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com