python - 如何利用 Catboost 中的 MAP 评估指标来计算平均精度?

标签 python catboost

我一直在 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_ precisionXGboost 上的 MAP。此指标自 catboost 0.32.1 版本起实现。

关于python - 如何利用 Catboost 中的 MAP 评估指标来计算平均精度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68731441/

相关文章:

python - MySQL高效导入大数据列表

python - 如何为 CatBoostRegressor 指定多个 eval_metric?

python - Catboost 回归。函数外推

python - 更新 Toga、Beeware、Python 中的 MainWindow

machine-learning - CatBoost 中的 CTR 是什么意思

python - Catboost 默认超参数

python - Catboost 的 verbose 可以是 int 吗?

python - 如何修复 conda 中的包解析警告?

python - Dask分布式异常处理方式

python - Pyspark 过滤来自 RDD 的空行不起作用