排名算法来比较“排名”

时间:2012-02-05 12:46:40

标签: algorithm compare ranking ranking-functions

是否存在一种算法,该算法允许基于两个排名中的那些项目的位置的差异对项目进行排名,但也对该位置进行“加权”,例如,从位置2-> 1开始的一个玩家应该排名高于从9-> 8开始的玩家。

玩具示例,我有两个列表/等级:

等级1:

  1. 播放器a
  2. 玩家b
  3. 玩家c
  4. 玩家d ...
  5. 等级2:

    1. 玩家d
    2. 玩家c
    3. 播放器a
    4. 玩家b ...
    5. 我正在考虑用平均排名(或其他值)来“加权”排名差异,例如,如果玩家从9-> 8开始,则用于排名的值将是(9-8)/ avg (8,9)= 1 / 8,5。

2 个答案:

答案 0 :(得分:5)

在非参数统计中,您想要的内容似乎或多或少等同于Spearman's rank correlation。它基本上总结了amount_moved的平方(旧排名和新排名之间的差异)

答案 1 :(得分:1)

向后编号列表。计算位置之间移动的“值”,作为这些数字的平方差。

因此,如果您的列表中有10个项目:

  • 2-> 1将是10^2 - 9^2 = 19
  • 9-> 8将是3^2 - 2^2 = 5

如果不知道你追求的是什么样的相对重量,很难说这是否正是你所追求的。如果这不适合您,请尝试升高/降低指数以找到合适的东西。