我如何利用 Catboost 中的 MAP eval 指标来计算 Mean Average Precision?

How do I utilize the MAP eval metric in Catboost to calculate Mean Average Precision?

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

当我使用 MAP 作为评估指标拟合我的 Catboost 模型时,出现错误:

CatBoostError: c:/program files (x86)/go agent/pipelines/buildmaster/catboost.git/catboost/private/libs/target/data_providers.cpp:269: Groupwise loss/metrics require nontrivial groups

在谷歌搜索这个错误后(特别是“Groupwise loss/metrics 需要非平凡的组”部分)我没有运气解决这个问题。

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

如何在 Catboost 中将 MAP 用作二元分类问题的评估指标?

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