我目前正在使用具有保持集的RankNet算法(-ranker 4)的RankLib实现。我在终端中使用jar文件来运行它。
metric2t(例如NDCG,ERR等)仅适用于列表方式算法 (AdaRank,Coordinate Ascent和LambdaMART)。逐点和成对 技术(MART,RankNet,RankBoost),由于其性质,总是使用 他们的内部RMSE /成对损失作为优化标准。
然而,当我将'metrics2t'设置为ERR @ 10或NDCG @ 10时,它开始训练并验证我选择的指标而不是'RMSE'。
This is part of the table outputted when I run RankNet with ERR@10.
我是否遗漏了一些东西,因为这似乎与我相矛盾。
感谢。
答案 0 :(得分:0)
我不确定,但是,我认为即使它打印出这些指标的结果,也不会对它们进行优化。
图书馆的开发人员只是将其留在那里,至于其他方法,通常使用其中一个指标进行验证。在培训期间,没有办法简单地将计算结果从指标上移开。
现在我正在训练一个RankNet模型,似乎ERR @ 10的训练和验证数据实际上正在增加,而"%错误排序的对"正在减少。