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/

相关文章:

offset - catboost 回归器的 base_margin 或 init_score

python - 如何创建一个列来告诉我另一列是否包含字母数字值?

Python SqlAlchemy + MySql 通过 JSON 列数据过滤

python - BERT 和 ALBERT 的训练数据损失大且准确率低

python - Catboost 预测返回错误特征在数据集中标记为不同

python - 如何将logit shap值转换为概率

Python多处理使用队列写入同一个文件

python - mat1 和 mat2 形状不能相乘

python - 如何在 Anaconda x64 上安装 Yandex CatBoost?

machine-learning - 在 CatBoost 中测量 AUPRC