排名之间的距离[英] Distances between rankings

本文是小编为大家收集整理的关于排名之间的距离的处理方法,想解了排名之间的距离的问题怎么解决?排名之间的距离问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我有两种方法可以对字符串列表进行不同的排名,我们可以认为是列表的"正确"排名(即黄金标准).

换句话说:

 ranked_list_of_strings_1 = method_1(list_of_strings)
 ranked_list_of_strings_2 = method_2(list_of_strings)    
 correctly_ranked_list_of_strings # Some permutation of list_of_strings

考虑到 method_1 和 method_2 是黑盒,我如何确定哪种方法更好?SciPy 或 scikit-learn 或类似的库中是否有任何方法可以测量这一点?

在我的具体情况下,我实际上有一个数据框,每个方法都会输出一个分数.重要的不是方法和真实分数之间的分数差异,而是方法获得正确的排名(分数越高意味着所有列的排名越高).

      strings        scores_method_1   scores_method_2   true_scores
5714  aeSeOg                    0.54               0.1           0.8
5741  NQXACs                    0.15               0.3           0.4
5768  zsFZQi                    0.57               0.7           0.2

推荐答案

您正在寻找标准化折现累积增益 (NDGC).这是搜索引擎排名中常用的衡量结果排名质量的指标.

这个想法是您通过点击(在您的演员中真实排名)针对用户反馈测试您的排名(在您的情况下是两种方法).NDGC 会告诉你你的排名相对于事实的质量.

Python 有基于 RankEval 的模块来实现这个指标(如果你还可以想试试).repo 在这里 并且有一个不错的 IPython NB 示例

本文地址:https://www.itbaoku.cn/post/1727850.html