【问题标题】:XGBoost - Output boosting roundsXGBoost - 输出提升回合
【发布时间】: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)

【问题讨论】:

    标签: python machine-learning scikit-learn data-science xgboost


    【解决方案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)
    猜你喜欢
    • 1970-01-01
    • 2017-01-25
    • 2017-03-01
    • 2012-07-22
    • 1970-01-01
    • 2020-01-26
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多