【问题标题】:How to use both custom eval_metric and a built-in metric in xgboost.XGBClassifier如何在 xgboost.XGBClassifier 中同时使用自定义 eval_metric 和内置指标
【发布时间】:2019-04-16 15:06:12
【问题描述】:

你好!

我正在尝试组合由一个自定义 eval 函数和多个内置 eval 函数组成的 eval_metrics 列表。

当我使用内置函数列表时,一切正常:

model.fit(
    X_train_inner,
    y_train_inner,
    early_stopping_rounds=20,
    eval_metric = ["error", "logloss", "map"],
    eval_set=[(X_test_inner, y_test_inner)])

另外,当我自己使用自定义函数时,一切正常:

model.fit(
    X_train_inner,
    y_train_inner,
    early_stopping_rounds=20,
    eval_metric = custom_f1_eval_function,
    eval_set=[(X_test_inner, y_test_inner)])

但是如何将自定义函数和内置函数都传递给 eval_metric 参数?

谢谢!

【问题讨论】:

    标签: xgboost evaluation


    【解决方案1】:

    https://github.com/dmlc/xgboost/issues/1125

    def auc_copc(preds, dtrain):
      preds = 1.0 / (1.0 + np.exp(-preds))
      labels = dtrain.get_label()
      auc = roc_auc_score(labels, preds)
      copc = np.sum(labels) / np.sum(preds)
      return [('auc', auc), ('copc', copc)]
    

    【讨论】:

    • 为您的回复添加一些上下文,使其更有意义和有用。如果链接更改,则此响应变得难以理解。
    • 欢迎来到 Stack Overflow。没有任何解释的代码转储很少有帮助。 Stack Overflow 是关于学习的,而不是提供 sn-ps 来盲目复制和粘贴。请edit您的问题并解释它如何比 OP 提供的更好。见How to Answer
    猜你喜欢
    • 2018-01-30
    • 2017-10-02
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-02
    • 1970-01-01
    相关资源
    最近更新 更多