XGBoost - 输出提升回合
Posted
技术标签:
【中文标题】XGBoost - 输出提升回合【英文标题】:XGBoost - Output boosting rounds 【发布时间】:2020-02-14 04:58:36 【问题描述】:我正在使用 Scikit-Learn API,XGBRegressor
。我正在尝试使我的模型尽可能详细。这些是模型的参数。这是在 Kaggle 内核上运行的。 df_train
和 df_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)