XGBoost - 输出提升回合

Posted

技术标签:

【中文标题】XGBoost - 输出提升回合【英文标题】:XGBoost - Output boosting rounds 【发布时间】:2020-02-14 04:58:36 【问题描述】:

我正在使用 Scikit-Learn API,XGBRegressor。我正在尝试使我的模型尽可能详细。这些是模型的参数。这是在 Kaggle 内核上运行的。 df_traindf_target 是 pandas 数据帧。

model = xgb.XGBRegressor(
    n_estimators=2**8,
    max_depth=5,
    learning_rate=0.04,
    subsample=0.9,
    colsample_bytree=0.9,    
    objective='reg:squarederror',
    booster='gbtree',
    importance_type='weight',
    tree_method='gpu_hist',
    silent=False,    
    random_state=SEED
)

这是fit()的参数。我必须看到在 LightGBM 中的增强轮之间训练 rmse。 XGBoost 有这个功能吗?

model.fit(df_train, df_target, eval_metric='rmse', eval_set=[(df_train, df_target)], verbose=True)

【问题讨论】:

【参考方案1】:

是的。你只需要设置 eval_set 参数就可以了。你只需要设置 eval_set 参数:

XGB.fit(X_train,y_train, eval_set = [(X_test, y_test)], verbose = True)

【讨论】:

我不明白这个问题。你想看到的输出是这样的吗?输出? [11] 验证_0-rmse:2.67241 验证_1-rmse:2.68524 [12] 验证_0-rmse:2.4146 验证_1-rmse:2.42833 [13] 验证_0-rmse:2.18278 验证_1-rmse:2.19782 [14] 验证_0-rmse:1.97601 验证_1-rmse :1.99251 [15] 验证_0-rmse:1.7892 验证_1-rmse:1.80586 是的,这就是我想看到的,但我的代码和你的一样 尝试将您的 eval_set 设置为不同的数据集。训练将其设置为测试数据集。例如:model.fit(df_train, df_target, eval_metric='rmse', eval_set=[(X_test, y_test)], verbose=True)

以上是关于XGBoost - 输出提升回合的主要内容,如果未能解决你的问题,请参考以下文章

Matlab基于极端梯度提升XGBoost实现分类预测(Excel可直接替换数据)

XGBoost 极限提升树 (Extreme Gradient Boosting)

xgboost导读及论文理解

XGBoost 参数介绍

机器学习之路: python 实践 提升树 XGBoost 分类器

xgboost 参数调优指南