2

是否有一种算法允许根据这些项目在两个排名中的位置差异对项目进行排名,但也可以对位置进行“加权”,例如,从位置 2->1 移动的玩家的排名应该高于从9-> 8。

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

排名 1:

  1. 玩家a
  2. 玩家 b
  3. 玩家 c
  4. 球员德...

等级 2:

  1. 玩家 d
  2. 玩家 c
  3. 玩家a
  4. 玩家乙...

我正在考虑用平均排名(或其他值)“加权”排名差异,例如,如果玩家从 9->8 排名,则用于排名的值将是 (9-8)/avg(8,9 ) = 1/8,5。

4

2 回答 2

5

您想要的似乎或多或少等同于Spearman在非参数统计中的等级相关性。它基本上是对 amount_moved 的平方求和(旧排名和新排名之间的差异)

于 2012-02-05T13:23:17.687 回答
1

倒数你的清单。将位置之间移动的“值”计算为这些数字的平方差。

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

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

如果不知道您所追求的相对权重,很难判断这是否正是您所追求的。如果这不太适合您,请尝试提高/降低指数以找到适合的值。

于 2012-02-05T13:06:18.293 回答