我一直在 Catboost 中使用自定义指标来衡量精确召回 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
在谷歌上搜索此错误(特别是“分组损失/指标需要非平凡组”部分)后,我没有运气解决该问题。
浏览 Catboost documentation似乎可能需要使用一些额外的参数才能使 MAP 作为评估指标正常工作。但我不明白如何实现它们。
如何在 Catboost 中使用 MAP 作为二元分类问题的评估指标?
最佳答案
Catboost 上没有指标 MAP。但是要使用平均精度作为指标,您可以使用 eval_metric="PRAUC:use_weights=false
,它与 scikit-learn
具有相同的含义 average_ precision
和XGboost
上的 MAP
。此指标自 catboost
0.32.1
版本起实现。
关于python - 如何利用 Catboost 中的 MAP 评估指标来计算平均精度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68731441/