3

我想知道如何为排名任务配置 catboost。catboost 主页暗示它可以用于对任务进行排名。然而,排名任务的文档似乎很少: https ://tech.yandex.com/catboost/doc/dg/concepts/cli-reference_train-model-docpage/

并且所有教程都侧重于对单个实例进行分类: https ://github.com/catboost/catboost/tree/master/catboost/tutorials

理想情况下,会有一些类似于 LightGBM 的文档或示例用于排名:https ://github.com/Microsoft/LightGBM/tree/master/examples/lambdarank

有人用catboost来排名吗?

4

1 回答 1

6

从 0.9 版开始,CatBoost 支持多种排名模式。要使用排名模式,您需要构建一个包含对象组的数据集(用户 group_id)。该算法将尝试在组内找到最佳顺序。

CatBoost 中有两种 pairwise 模式,PairLogit 和 PairLogitPairwise。对于成对模式,您需要提供对作为数据集的一部分。PairLogit 要快得多,但 PairLogitPairwise 可能会在大型数据集上提供更好的质量。

有两种排名模式 YetiRank 和 YetiRankPairwise。要使用它们,您需要在数据集中有标签。它们之间的区别是相同的,YetiRankPairwise 的计算成本更高,但可能会提供更好的结果。

还有排名和回归(QueryRMSE)之间的混合,排名和分类(QueryCrossEntropy)之间的混合以及QuerySoftMax损失。

于 2018-07-05T13:57:04.587 回答