【问题标题】:How do I utilize the MAP eval metric in Catboost to calculate Mean Average Precision?如何利用 Catboost 中的 MAP 评估指标来计算平均精度?
【发布时间】:2021-10-06 17:29:42
【问题描述】:

我一直在 Catboost 中为 Precision-Recall AUC 使用自定义指标。但是,它迭代缓慢并且与 GPU 不兼容。我看到了Catboost has a metric "MAP" for Mean Average Precision,这是我的(二进制)分类模型所需要的。

当我使用 MAP 作为评估指标来拟合我的 Catboost 模型时,我得到了错误:

CatBoostError: c:/program files (x86)/go 代理/管道/buildmaster/catboost.git/catboost/private/libs/target/data_providers.cpp:269: 分组损失/度量需要非平凡的组

在谷歌搜索此错误后(特别是“Groupwise loss/metrics require nontrivial groups”部分),我没有运气解决问题。

查看Catboost documentation,我似乎需要使用一些额外的参数才能使 MAP 作为评估指标正常工作。但我不明白如何实现它们。

如何在 Catboost 中使用 MAP 作为我的评估指标来解决二元分类问题?

【问题讨论】:

    标签: python catboost


    【解决方案1】:

    Catboost 上没有公制 MAP。但是要使用平均精度作为度量,您可以使用eval_metric="PRAUC:use_weights=false,它与scikit-learn average_precisionMAP on XGboost 具有相同的含义。从catboost 0.32.1 版本开始实施此指标。

    【讨论】:

      猜你喜欢
      • 2015-08-14
      • 2020-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-30
      • 2021-03-30
      • 1970-01-01
      相关资源
      最近更新 更多