我目前正在使用 RankNet 算法 (-ranker 4) 的 RankLib 实现和保留集。我正在终端中使用 jar 文件来运行它。
metric2t (e.g. NDCG, ERR, etc) only applies to list-wise algorithms (AdaRank, Coordinate Ascent and LambdaMART). Point-wise and pair-wise techniques (MART, RankNet, RankBoost), due to their nature, always use their internal RMSE / pair-wise loss as the optimisation criteria.
但是,当我将“metrics2t”设置为 ERR@10 或 NDCG@10 时,它开始根据我选择的指标而不是“RMSE”进行训练和验证。
This is part of the table outputted when I run RankNet with ERR@10.
我是否遗漏了一些东西,因为这对我来说似乎是矛盾的。
谢谢。
最佳答案
我不确定,但是,我认为即使它打印了这些指标的结果,它也没有针对它们进行优化。
该库的开发人员只是将其留在那里,至于其他方法,通常使用这些指标之一进行验证。并且无法在训练期间简单地关闭计算来关闭指标。
现在我正在训练 RankNet 模型,看来训练和验证数据的 ERR@10 实际上正在增加,而“错误排序对的百分比”正在减少。
关于java - 我可以使用哪些指标来验证和测试 Lemur 项目 RankLib 库中的 RankNet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43089917/